麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JavaScript實現瀑布流以及加載效果

2019-11-19 17:38:00
字體:
來源:轉載
供稿:網友

一、瀑布流是個啥?

  瀑布流,是比較流行的一種網站頁面布局,視覺表現為參差不齊的多欄布局,隨著頁面滾動條向下滾動,這種布局還會不斷加載數據塊并附加至當前尾部。

  最早采用瀑布流布局的網站是Pinterest,逐漸在國內流行開來,比如我們熟知的百度圖片的布局,在“很久”以前,百度圖片還是需要一頁一頁的點擊進行查看更多圖片,而現在的瀑布流布局使用戶查找圖片更加方便。

二、瀑布流的優缺點

優點:

1.節省了頁面的空間,不再需要導航和頁碼按鈕。

2.增強了用戶的體驗,使用戶的體驗更多的是在于瀏覽圖片上,而不是在尋找怎么找下一頁和切換的操作上。

缺點:

1.使用的網頁類型有限:

  這種瀑布流布局只適用于某些特定類型產品中一部分特定類型的內容。

  比如我們在某寶買東西時,我們就需要記住第幾頁的哪個商品是我們想買的,然后再回頭購買,這時候就需要我們的頁面按鈕來幫忙記憶,瀑布流反而更加麻煩。

2.永遠看不到的頁腳:

  如果我們使用瀑布流無限滾動加載模式,那就是說我們永遠也無法看到我們的頁腳,當用戶一次次的瀏覽到頁面底部,看到頁腳,卻因為自動加載的內容的突然出現,無論怎樣都無法點擊到頁腳中的鏈接或登錄時,那么用戶的體驗是極為糟糕的,他們可能會憤怒的關掉你的網頁。

3.關于頁面數量:

  對于用戶來說,使用瀑布流自動加載來替代傳統的換頁其實是很方便的,而對于開發者的網站來說,頁面的減少可能就無法展示更多地相關信息,最明顯的就是廣告減少。

三、瀑布流寫法及原理

瀑布流到底長什么樣子呢,那我們現在就來默寫一個簡單的瀑布流布局。先把亂七八糟的基礎樣式和布局稍微的敲一下~這里我們為了節省空間,就不縮進啦~

CSS:

*{margin: 0;padding: 0;}  #wrap{width: 840px;margin: 0 auto;border: 1px solid black;overflow: hidden;}#wrap ul{width: 200px;margin: 0 5px;float: left;}#wrap ul li{width: 200px;list-style: none;margin: 10px 0;background: palegreen;font-size: 50px;color: white;text-align: center;}

HTML:

<div id="wrap">  <ul></ul>  <ul></ul>  <ul></ul>  <ul></ul></div>

以下是簡單的JS代碼:

var wrap=document.querySelector("#wrap");var ul=document.querySelectorAll("#wrap ul");//聲明元素塊//先創建一個隨機數的函數function ranDom(min,max){  return Math.random()*(max-min+1)+min;}//再創建一個添加li的函數function createLi(num){  for(var i=0;i<num;i++){    var newLi=document.createElement("li");//創建li    newLi.style.height=ranDom(100,400)+"px";//使用隨機數函數創建高度不同的li    var arrul=[];//將ul的高度進行儲存和比較    for(var j=0;j<ul.length;j++){      arrul.push(ul[j].offsetHeight);//儲存ul的高度    }    var minHeight=arrul[0];    var minIndex=0;    for(var k=0;k<arrul.length;k++){      if(minHeight>arrul[k]){        minHeight=arrul[k];//比較出高度最短的ul然后賦值給minHeight        minIndex=k;//把高度最短的ul所在下標賦值給minIndex      }    }  ul[minIndex].appendChild(newLi);//向高度最短的ul里添加li  }  }createLi(15);//執行函數,添加15個li,//創建一個滾動事件window.onscroll=function(){ // html總高度-可視化窗口高度=body的滾動高度//兼容寫法   var scrollTop=document.body.scrollTop;   var clientHeight=document.documentElement.clientHeight||document.body.clientHeight||window.innerHeight;   if(document.documentElement.offsetHeight-clientHeight<=scrollTop){     createLi(15);   } }//當滾動快要到達底部,還沒有到達的時候,再去執行函數,創建新的li 

這樣我們就實現了永遠也看不到頁腳的自動加載瀑布流布局。

四、總結

  瀑布流簡單來講就是頁面容器內的多個高度不固定的容器之間參差不齊的添加內容,鼠標滾動時不斷在容器內的尾部加載數據,且自動加載到空缺位置,也就是例子中的高度最短的位置,不斷循環。

  瀑布流對于圖片的展現,是高效而具有吸引力的,用戶一眼掃過的快速閱讀模式可以在短時間內獲得更多的信息量,而瀑布流里自動加載又避免了用戶鼠標點擊的翻頁操作。

  瀑布流的主要特性便是錯落有致,定寬而不定高的設計讓頁面區別于傳統的矩陣式圖片布局模式,巧妙的利用視覺層級,視線的任意流動又緩解了視覺疲勞,同時給人以不拘一格的感覺。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级色毛片 | 一级电影免费 | 天天夜夜草 | 56av国产精品久久久久久久 | 欧美亚洲一级 | 亚洲人成在线播放网站 | 成人三级电影网站 | 天天色人人爱 | 久久金品 | 五月天影院,久久综合, | 国产免费一级 | 国产成人免费高清激情视频 | 在线视频1区 | 国产精品久久久久久久久久尿 | 欧美一级片在线 | 蜜桃av网 | 91麻豆精品国产91久久久无需广告 | 免费国产在线视频 | 日韩精品免费一区二区三区 | 综合图区亚洲 | 成人在线观看小视频 | 色婷婷久久久亚洲一区二区三区 | 日韩视频一区 | 中国黄色一级生活片 | 欧美激情精品久久久久久黑人 | 成人电影毛片 | 被啪羞羞视频在线观看 | 性欧美日本| 黄色网址你懂的 | 天天操天天骑 | 中文字幕在线视频网站 | 色污视频在线观看 | 成av人在线观看 | www.7777在线| 中文字幕在线免费观看电影 | 日本欧美一区二区三区视频麻豆 | 久久久国产一区二区三区 | 毛片免费在线观看 | 羞羞视频免费网站男男 | 久久91久久久久麻豆精品 | 一区二区三区在线观看免费 |