码迷,mamicode.com
首页 > Web开发 > 详细

懒加载-js原生

时间:2020-01-10 20:19:28      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:var   clear   间隔   context   tor   rom   listen   函数   dev   

window.onload = function(){

        var scrollTop = window.scrollY;
        var imgs = Array.from(document.querySelectorAll(‘img‘));
        lazyLoad();
        // 采用了节流函数
        window.addEventListener(‘scroll‘,throttle(lazyLoad,500,1000));

        function throttle(fun, delay, time) {
            var timeout,
                startTime = new Date();
            return function() {

                var context = this,
                    args = arguments,
                    curTime = new Date();
                clearTimeout(timeout);
                // 如果达到了规定的触发时间间隔,触发 handler
                console.log(curTime - startTime)
                if (curTime - startTime >= time) {
                    fun();
                    startTime = curTime;
                    // 没达到触发间隔,重新设定定时器
                } else {
                    timeout = setTimeout(fun, delay);
                }
            };
        };
        // 实际想绑定在 scroll 事件上的 handler
        // 需要访问到imgs ,  scroll
        function lazyLoad(){
            scrollTop = window.scrollY;
            imgs.forEach((item,index)=>{
                if( scrollTop===0 && item.dataset.src !== ‘‘ && item.offsetTop < window.innerHeight + scrollTop ){
                    // alert()
                    item.setAttribute(‘src‘,item.dataset.src)
                    item.setAttribute(‘data-src‘,‘‘)
                }else if( item.dataset.src !== ‘‘ && item.offsetTop < window.innerHeight + scrollTop && item.offsetTop > scrollTop ){
                    item.setAttribute(‘src‘,item.dataset.src)
                    item.setAttribute(‘data-src‘,‘‘)
                }
            })
        }

    }

 

 

懒加载-js原生

标签:var   clear   间隔   context   tor   rom   listen   函数   dev   

原文地址:https://www.cnblogs.com/xuziwen/p/12177792.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!