博主信息
博文 54
粉丝 4
评论 1
访问量 65694
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
懒加载的案例,选项卡的案例2019年7月15日
神仙不在的博客
原创
1331人浏览过

5bc84990Nc9bfeb71.jpg


首先我们获取元素 Element.offsetTop ,获取可视区高度 document.documentElement.clientHeight。 随着页面滚动,实时获取滚动条的高度 document.documentElement.scrollTop,如果元素 offsetTop <=(scrollTop + clientHeight)的时候,开始替换src属性。

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            height:3000px;
        }
        img {
            width:600px;height:350px;margin: 5px
        }
    </style>
</head>
<body>
<div>
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="./images/1.jpg"  alt="" >
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="./images/2.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="./images/3.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="./images/4.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="./images/5.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/6.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/7.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/8.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/9.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/10.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/11.jpg"  alt="">
    <img src="http://www.shenxianbuzai.com/0715//images/loading.gif"  data-src="http://www.shenxianbuzai.com/0715//images/12.jpg"  alt="">
</div>
<script>
    var img = document.querySelectorAll('img');

    window.addEventListener('scroll',lazy,false);
    function lazy() {
        var clientHeight = document.documentElement.clientHeight;
        var scrollTop = document.documentElement.scrollTop;
       for (var i=0;i<12;i++){
           if (img[i].offsetTop <=(scrollTop + clientHeight)) {
               img[i].setAttribute('src',img[i].getAttribute('data-src'))
           };
       };

    }
    window.addEventListener('load',lazy,false)
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    .box{
        width:1000px;
        margin:50px auto;
    }



    .nav ul{
            margin:0;
            padding:0;
            list-style: none;


        }
    .nav ul li{
        display:inline-block;
        margin:10px;
        padding: 10px 10px;
        font-size: 14px;

    }

    .current{
        background-color: #e4393c;
        color: white;
        }
    .show{
        display:block;
    }
    .hidden{
        display:none;
        }
    </style>
</head>
<body>
<div class="box">
    <div class="nav">
        <ul>
            <li class="current">商品介绍</li>
            <li>规格与包装</li>
            <li>售后保障</li>
            <li>商品评价</li>
            <li>社区互动</li>
        </ul>
    </div>
    <div class="content">
        <p>商品介绍内容,***: 联想(Lenovo)</p>
        <p class="hidden">规格与包装内容,包装清单:笔记本主机 x1 电源适配器 x1</p>
        <p class="hidden">售后保障内容,本产品全国联保,享受三包服务,质保期为:二年有限质保</p>
        <p class="hidden">商品评价内容,联想毕竟是专业做笔记本的,相信质量,品控绝对是一流的</p>
        <p class="hidden">社区互动内容:美帝联想。</p>
    </div>
</div>
<script>
    // 找到所有li标签
    var li = document.getElementsByTagName('li');
    var p = document.getElementsByTagName('p');
    // 循环遍历每一个li标签都绑定onclick事件
    for (var i=0;i<li.length;i++) {
        // 每一个li添加一个data-index属性
        li[i].setAttribute('data-index',i);
        li[i].onclick=function () {

            for (var i =0;i<li.length;i++) {
                // 干掉所有的current样式
                li[i].className='';
                // 干掉所有的show样式
                p[i].className='hidden';
            }
            // 保留我一个人的样式
            this.className='current';
            // 得到点击的li的索引
           var index = this.getAttribute('data-index');
            // 保留我一个人的show样式
           p[index].className='show';
        }
    }
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

选项卡是模仿京东的一个样式,实现功能了,就是界面有点丑。


批改状态:合格

老师批语:你似乎没有用到课堂上推荐的方式, 以后, for循环少用, 用数组形式遍历并处理效率是最高的
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学