<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
        主站蜘蛛池模板: 亚洲色丰满少妇高潮18p| 久久久国产亚洲精品| 一级毛片在线免费播放| 日韩免费视频播播| 亚洲欧洲无卡二区视頻| 四色在线精品免费观看| 亚洲色大18成人网站WWW在线播放| 最近免费视频中文字幕大全| 亚洲精品免费在线视频| 国产va精品免费观看| 67194在线午夜亚洲| 四虎成人免费网址在线| 亚洲av乱码中文一区二区三区| 永久久久免费浮力影院| 精品国产亚洲一区二区三区在线观看 | 在线观看永久免费视频网站| 亚洲AV成人无码网站| 亚洲?v女人的天堂在线观看| www免费黄色网| 亚洲av激情无码专区在线播放| 一级成人a毛片免费播放| 亚洲一区二区三区四区视频| 免费的涩涩视频在线播放| 一二三四在线观看免费中文在线观看 | 亚洲最大的成人网| 国产在线98福利播放视频免费| 国产黄色免费观看| 亚洲视频2020| 国产公开免费人成视频| 成人免费777777被爆出| 亚洲一卡2卡4卡5卡6卡残暴在线| 日韩免费高清视频| 三年片免费高清版| 亚洲国产成人久久三区| 亚洲?V乱码久久精品蜜桃 | 亚洲第一精品在线视频| 最近最好的中文字幕2019免费 | 丁香五月亚洲综合深深爱| **真实毛片免费观看| 国产亚洲精品AAAA片APP| 亚洲成Av人片乱码色午夜|