博主信息
博文 13
粉丝 0
评论 0
访问量 8783
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
html,css,js基礎 (lazyload & tab - 2019年7月15日)
Little的博客
原创
963人浏览过

因為上傳不了圖片的文件夾,所以整套放上了github.

https://github.com/beebb0128/php.cn


实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        ul, li {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        a {
            display: block;
            font-size: 24px;
            margin: 10px 20px;
            text-decoration: none;
        }

        a:hover {
            color: red;
        }

        .tab-container {
            width: 450px;
            height: 300px;
            margin: 0 auto;
        }

        .tab-nav {
            overflow: hidden;
        }

        .tab-nav ul li {
            float: left;
            font-size: 36px;
            width: 150px;
            height: 50px;
            line-height: 50px;
            text-align: center;
            cursor: pointer;
        }

        .tab-nav ul li:hover {
            background-color: #003366;
            color: white;
        }

        .active {
            background-color: lightblue;
        }

        .tab-content .detail {
            line-height: 30px;
            min-height: 200px;
            padding-top: 10px;
            display: none;
        }

        .detail.active {
            display: block;
        }

        .container {
            height: 4430px;
            width: 1080px;
            margin: 0 auto;
            border: 5px solid deepskyblue;
            padding: 20px;
        }
    </style>
</head>
<body>
<div class="tab-container">
    <div class="tab-nav">
        <ul>
            <li class="active" data-index="1">First</li>
            <li data-index="2">Second</li>
            <li data-index="3">Third</li>
        </ul>
    </div>

    <div class="tab-content">
        <div class="detail active" data-index="1">
            <ul>
                <li><a href="">First tab content</a></li>
                <li><a href="">First tab content</a></li>
                <li><a href="">First tab content </a></li>
            </ul>
        </div>
        <div class="detail" data-index="2">
            <ul>
                <li><a href="">Second tab content</a></li>
                <li><a href="">Second tab content</a></li>
                <li><a href="">Second tab content</a></li>
            </ul>
        </div>
        <div class="detail" data-index="3">
            <ul>
                <li><a href="">Third tab content</a></li>
                <li><a href="">Third tab content</a></li>
                <li><a href="">Third tab content</a></li>
            </ul>
        </div>
    </div>
</div>

<div class="container"></div>

<script>
    function partOne() {
        var frag = document.createDocumentFragment();
        //insert img
        for (var i = 1; i <= 6; i++) {
            var imgUrl = 'img/' + i + '.jpg';
            var img = document.createElement('img');

            // set default img
            img.setAttribute('src', 'images/loading.gif');

            // import real image
            img.setAttribute('data-src', imgUrl);

            img.setAttribute('style', 'width:1080px;height:720px;margin-top:10px;')

            frag.appendChild(img);
        }
        //import the img into DOM
        document.querySelector('.container').appendChild(frag);

        function lazyLoad() {
            //get scrollTop value
            var scrollTop = document.documentElement.scrollTop;

            //get current height
            var currHeight = document.documentElement.clientHeight;

            //transfer image object to array
            var ArrImg = Array.from(document.images);

            ArrImg.forEach(function (img) {
                if (img.offsetTop < (scrollTop + currHeight)) {
                    img.setAttribute('src', img.dataset.src);
                }
            })
        }

        window.addEventListener('scroll', lazyLoad, false);
        window.addEventListener('load', lazyLoad, false);
    }

    function partTwo() {
        //find tab nav section and transfer to array
        var tabNav = document.querySelectorAll('.tab-nav li');
        var tabNavArr = Array.from(tabNav);

        //find tab content section and transfer to array
        var tabContent = document.querySelectorAll('.tab-content .detail');
        var tabContentArr = Array.from(tabContent);

        document.querySelector('.tab-nav').addEventListener('click', show, false);

        function show(evt) {
            //action in tab-nav
            tabNavArr.forEach(function (tab) {
                tab.classList.remove('active')

            });
            evt.target.classList.add('active');

            tabContentArr.forEach(function (content) {
                content.classList.remove('active');
            });

            tabContentArr.forEach(function (content) {
                if (content.dataset.index === evt.target.dataset.index) {
                    content.classList.add('active');
                }
            });
        }
    }

    partOne();
    partTwo();
</script>

</body>
</html>

运行实例 »

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


批改状态:合格

老师批语:当天的作业, 不要分成几个博客提出 , 不方便审核, 建议当天的所有作业写到一个博客中
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学