博客列表 >懒加载的案例,选项卡的案例2019年7月15日

懒加载的案例,选项卡的案例2019年7月15日

神仙不在的博客
神仙不在的博客原创
2019年07月18日 14:07:001124浏览

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>

运行实例 »

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

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议