<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳解javascript實現瀑布流絕對式布局_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:50:15
        文檔

        詳解javascript實現瀑布流絕對式布局_javascript技巧

        詳解javascript實現瀑布流絕對式布局_javascript技巧:瀑布流也應該算是流行幾年了吧。首先是由Pinterest掀起的浪潮,然后國內設計如雨后春筍般,冒出很多瀑布流的例子,比如,蘑菇街,Mark之(不過最近涉黃,好像被喝茶了),還有淘寶的 哇哦. 這些都是很棒的例子, 今天我們就聊一聊瀑布流。 一、絕對式布局:
        推薦度:
        導讀詳解javascript實現瀑布流絕對式布局_javascript技巧:瀑布流也應該算是流行幾年了吧。首先是由Pinterest掀起的浪潮,然后國內設計如雨后春筍般,冒出很多瀑布流的例子,比如,蘑菇街,Mark之(不過最近涉黃,好像被喝茶了),還有淘寶的 哇哦. 這些都是很棒的例子, 今天我們就聊一聊瀑布流。 一、絕對式布局:
        瀑布流也應該算是流行幾年了吧。首先是由Pinterest掀起的浪潮,然后國內設計如雨后春筍般,冒出很多瀑布流的例子,比如,蘑菇街,Mark之(不過最近涉黃,好像被喝茶了),還有淘寶的 “哇哦”. 這些都是很棒的例子, 今天我們就聊一聊瀑布流。
        一、絕對式布局:

        JS實現原理

        其實瀑布式主要的難點就在于,如果將圖片整齊的排列在對應的列下,以及什么時候開始刷新加載圖片。
        而圖片整齊的排列的主要邏輯和算法即,先獲取容器內可以放多少列,然后,通過計算,存放第一列的高度,再遍歷剩下(除第一列的元素)的高度,分別放入,高度最小的那一列。 逐個添加,最后結束遍歷。
        開始刷新的設置就很簡單了,瀑布流刷新只和一個事件有關,即,window.onscroll. 主要的算法即,當頁面滑動到最低高度的時候開始加載節點并且添加,當然,節點添加的個數是不固定的。
        先上代碼吧,我這里分3部分講解,一個是圖片的排列,一個是設置加載的位置.另外再補充一個響應式加載。

        1、圖片排列

        里面一共有7個函數(大函數),一個變量。 說一下思路吧。 首先,頁面onload之后 執行的函數是 init. 要知道,一個js程序一定有他的入口,關鍵看你怎么找了。 然后我們深入init函數體,觀察。init里面執行的業務邏輯就是 存儲第一排元素的高度,然后重排剩下的元素。 通過columns函數來獲得當前窗口最多可以放下多少列,然后設置容器的居中(通過padding設置即可). 接下來,遍歷pin的單元框,將第一排的元素高度存放在arrHeight數組里,將剩下的元素進行重排。 其他的函數覺得沒什么講解的必要了。 我們著重來看一下overLoad函數.
        2、overLoad

        在overLoad里面有getIndex函數,獲取最小高度的index,然后就可以設置傳入進來的ele元素的位置(絕對定位), top為數組中最小高度的px值,left就為第一排制定的Index元素的左邊距位置。 最后更新一下高度,ok!!! that's enough.
        3、設置加載位置

        其實,精華就在上一部分,這個只是作為一個加載數據的手段,當然,你可以點擊加載(手動觸發),或者其他的加載方法。 當然,怎么設置完全是取決于你的。 所以,隨大流,依然是通過下滑滾動加載。 繼續,找入口函數->dealScroll. 該函數執行的任務就是,通過isload函數,判斷是否可以進行加載判斷。 我們看一下isload函數,這個就是滾動加載的關鍵點.

        通過計算得出,頁面底部距視口的位置(工具條下部) 與 最后一個元素的絕對位置比較,如果 滑動距離超過,則啟用加載。
        yeah~ That's over.
        back to dealScroll
        接下來就是看加載的部分了,這個部分其實也沒什么說的,就是創建一個div節點,然后將他放到容器的最后,并且通過overLoad函數來處理該節點的位置。 另外在該函數的末尾,我設置了一個控制滑動速度的trick,通過對函數的節流,防止有時候,請求過慢,用戶重復發送請求,造成資源浪費。
        然后,這一部分也可以告一段落了。
        4、響應式
        最后一部分就是響應式了, 這部分,也超級簡單,只要你封裝性做的好,其實這一部分就是添加一個resize事件就over了。我們繼續找入口函數。

        同樣,這里使用到了函數節流的思想,要知道,作為一個程序員,永遠不要以為 用戶 干不出什么 傻事. 比如,沒事的時候拖著瀏覽器窗口玩,放大,縮小,再放大... 其實,這事我經常干,因為沒有女朋友,寫代碼寫累了,就拖瀏覽器玩。 所以,考慮到我們單身狗的需求,使用函數節流是非常有必要的。 感興趣的童鞋,可以參考我前面的文章,進行學習。 說明一下,這里的回調函數指的就是init函數,但是 需要對init做些改動。詳見。

        上面需要加入update,對新的第一排元素進行更新。
        然后就可以直接搬過來使用即可。
        這就是絕對是布局的大部分內容了,關于javascript瀑布流另一種布局方式請參考下一篇文章《詳解javascript實現瀑布流列式布局》。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳解javascript實現瀑布流絕對式布局_javascript技巧

        詳解javascript實現瀑布流絕對式布局_javascript技巧:瀑布流也應該算是流行幾年了吧。首先是由Pinterest掀起的浪潮,然后國內設計如雨后春筍般,冒出很多瀑布流的例子,比如,蘑菇街,Mark之(不過最近涉黃,好像被喝茶了),還有淘寶的 哇哦. 這些都是很棒的例子, 今天我們就聊一聊瀑布流。 一、絕對式布局:
        推薦度:
        標簽: 實現 js 詳解
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产精品99精品久久免费| 亚洲国产精品美女久久久久| 亚洲精品视频免费观看| 国产真实伦在线视频免费观看| jlzzjlzz亚洲jzjzjz| 国产在线观看麻豆91精品免费 | 91老湿机福利免费体验| 亚洲va久久久噜噜噜久久狠狠| 国产免费一区二区视频| 91久久亚洲国产成人精品性色| 91人人区免费区人人| 亚洲男女一区二区三区| 无码日韩人妻av一区免费| 亚洲一卡2卡3卡4卡国产网站| 久久久久久久久免费看无码| 99亚偷拍自图区亚洲| 国产精品嫩草影院免费| 少妇亚洲免费精品| 亚洲精品无码午夜福利中文字幕| a级毛片在线视频免费观看 | 亚洲天然素人无码专区| 免费a级毛片无码av| 中文字幕av免费专区| 青青草原精品国产亚洲av| 在线精品一卡乱码免费| 亚洲av日韩av永久无码电影| 亚洲性久久久影院| 91精品国产免费| 久久久久久亚洲精品无码| 亚洲午夜福利在线观看| 永久免费av无码网站韩国毛片| 亚洲人成网站999久久久综合| 亚洲午夜激情视频| 1区2区3区产品乱码免费| 亚洲欧美综合精品成人导航| 亚洲人成在线播放网站| 黄页网站免费观看| 国产久爱免费精品视频| 亚洲成人福利在线观看| 亚洲精品无码激情AV| 国产精品视频免费|