jquery懶加載、回到頂部

問答

1、如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù)isVisible實現(xiàn)

 function isVisible($node){ }

//

<script type="text/javascript">
    function isVisible($node) {
        var $scrollTop = $(window).scrollTop(),
                $winH = $(window).height(),
                $nodeTop = $node.offset().top;
        if ($nodeTop < ($scrollTop + $winH)) {
            console.log('true')
        } else {
            console.log('false')
        }
    }
</script>

2、當(dāng)窗口滾動時,判斷一個元素是不是出現(xiàn)在窗口可視范圍。每次出現(xiàn)都在控制臺打印 true 。用代碼實現(xiàn)

<div class="aa" style="height: 2000px;">1</div>
<div class="bb">2</div>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
<script type="text/javascript">
    var $node = $('.bb');
    function isVisible($node) {
        $(window).on('scroll', function () {
            var top = $node.offset().top;
            var winH = $(window).height();
            var scrollH = $(window).scrollTop();
            if (top < winH + scrollH) {
                console.log(true)
            } else {
                console.log(false)
            }
        })
    }
    isVisible($node);
</script>

3、當(dāng)窗口滾動時,判斷一個元素是不是出現(xiàn)在窗口可視范圍。在元素第一次出現(xiàn)時在控制臺打印 true,以后再次出現(xiàn)不做任何處理。用代碼實現(xiàn)

<div class="aa" style="height: 2000px;">1</div>
<div class="bb">2</div>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
<script type="text/javascript">
    var $node = $('.bb');
    function isVisible($node) {
        $(window).on('scroll', function () {
            var $top = $node.offset().top,
                $winH = $(window).height(),
                $scrollH = $(window).scrollTop();

            if ($top < $winH + $scrollH) {
                if($node.attr('isLoaded')){return}
                console.log(true)
                $node.attr('isLoaded', true);
            } else {
                console.log(false)
            }
        })
    }
    isVisible($node);
</script>

4、圖片懶加載的原理是什么?
首先設(shè)置所有圖片的背景圖為空白的(這是為了避免一些瀏覽器可能對沒有圖片的地方顯示“X”造成視覺上的不完美),空白圖片的URL保持一致(瀏覽器就不會重復(fù)加載消耗資源),當(dāng)圖片出現(xiàn)在窗口視線中的時候,執(zhí)行圖片鏈接地址的替換(如何判斷圖片出現(xiàn)在視線中呢:目標(biāo)元素的offset().top 小于 $(window).height() + $(window).scrollTop() )。

翻到顯示18的時候出現(xiàn)“回到頂部”按鈕,因為setTimeout所以會延遲500毫秒出現(xiàn)
JQ的懶加載
本地apach測試通過
待續(xù)......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù) isVisible實現(xiàn)...
    coolheadedY閱讀 465評論 0 0
  • 問答 1. 如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù) isVis...
    小木子2016閱讀 232評論 0 0
  • 回答: 1.何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一函數(shù) isVisib...
    ahong_吳閱讀 148評論 0 0
  • 如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù) isVisible實現(xiàn)...
    Nicklzy閱讀 593評論 0 50
  • 問答 1.如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù) isVisi...
    鴻鵠飛天閱讀 269評論 0 1

友情鏈接更多精彩內(nèi)容