轉帖|其它|編輯:郝浩|2011-06-02 15:16:27.000|閱讀 691 次
概述:這里延遲加載的意思是,拖動滾動條時,在圖片出現在瀏覽器顯示區域后才加載顯示。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
這里延遲加載的意思是,拖動滾動條時,在圖片出現在瀏覽器顯示區域后才加載顯示。
大概的實現方式是:
在頁面的load沒有觸發之前,把所有的指定id的元素內的img放入到imgs中,將所有的圖片的src值放入到一個新建的_src屬性中,把src設置為指定的顯示圖片。
然后,在document.body的scroll事件觸發時,循環計算imgs中的img元素位置是否正好在瀏覽器顯示框范圍內,如果是,則將img元素的_src屬性的值賦給src,這樣圖片就能顯示出來。
這里比較麻煩地方是,如何計算img的位置,獲得元素的相對于頁面的絕對位置。通常是用offsetLeft和offsetTop,但這兩個屬性是元素的offsetParent指向的元素的相對位置, 如果offsetParent所指的元素是設置了浮動的或使用絕對定位,那么offsetLeft來獲得絕對位置就不正確呢。
在這里我是將元素的所有父級元素的offsetTop之和來獲得文檔絕對位置的。
在設置窗口的scroll事件時,ie使用是document.documentElement,而其他的瀏覽器都使用document。
接下來是要獲得瀏覽器顯示窗口現對于文檔的位置,用了下面的代碼來計算
谷歌瀏覽器要通過body來獲得scrollTop,而其他瀏覽器通過documentElement。
最后迭代判斷img的位置,并顯示圖片
可以運行的 代碼
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載