楼层效果

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>楼层切换</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            li {
                list-style: none;
            }
            
            .main img {
                width: 850px;
                height: 700px;
                float: left;
            }
            
            .title {
                width: 850px;
                height: 50px;
                text-align: center;
                line-height: 50px;
            }
            
            .floor {
                position: fixed;
                top: 20px;
                right: 20px;
                display: none;
            }
            
            .floor ul li {
                width: 70px;
                height: 30px;
                text-align: center;
                line-height: 30px;
                cursor: hand;
                cursor: pointer
            }
            
            .liStyle {
                background-color: red;
            }
            
            .loading {
                background: url("image/loading.gif") no-repeat center center;
            }
            
            #back {
                cursor: hand;
                cursor: pointer;
            }
        </style>
    </head>

    <body>
        <div class="main" id="main">
            <h3 class="title">图片欣赏</h3>
            <img as="image/1.jpg" />
            <img as="image/2.jpg" />
            <img as="image/3.jpg" />
            <img as="image/4.jpg" />
            <img as="image/5.jpg" />
            <img as="image/6.jpg" />
            <img as="image/7.gif" />
            <img as="image/8.jpg" />
            <img as="image/9.jpg" />
            <img as="image/10.jpg" />
        </div>

        <div class="floor" id="floor">
            <ul id="floorUl">
                <li>第一张</li>
                <li>第二张</li>
                <li>第三张</li>
                <li>第四张</li>
                <li>第五张</li>
                <li>第六张</li>
                <li>第七张</li>
                <li>第八张</li>
                <li>第九张</li>
                <li>第十张</li>
            </ul>
            <p id="back">返回顶部</p>
        </div>
        <script>
            var main = document.getElementById("main");
            var floor = document.getElementById("floor");
            var image = main.getElementsByTagName("img");
            var floorUl = document.getElementById("floorUl");
            var li = floorUl.getElementsByTagName("li");
            var back = document.getElementById("back");
            window.onload = window.onscroll = function() {
                var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                var height = document.documentElement.clientHeight || document.body.clientHeight;
                for(var i = 0; i < image.length; i++) {
                    image[i].className = "loading";
                    if(delay(image[i]).top < scrollTop + height) {
                        image[i].src = image[i].getAttribute("as");
                    }
                }

                if(scrollTop >= image[0].offsetTop) {
                    floor.style.display = "block";
                } else {
                    floor.style.display = "none";
                }
                var num = 0;

                for(var i = 0; i < image.length; i++) {
                    if(scrollTop >= image[i].offsetTop) {
                        num = i;
                    }
                    li[i].className = "";
                }

                li[num].className = "liStyle";
                for(var i = 0; i < li.length; i++) {
                    li[i].onclick = function() {
                        for(var j = 0; j < li.length; j++) {
                            if(this == li[j]) {
                                document.documentElement.scrollTop = image[j].offsetTop;
                                document.body.scrollTop = image[j].offsetTop;
                            }
                        }
                    }
                }
            }

            var time = null;
            back.onclick = function() {
                function goBack() {
                    var ss = document.documentElement.scrollTop || document.body.scrollTop;
                    ss -= 50;
                    document.documentElement.scrollTop = ss;
                    document.body.scrollTop = ss;
                    if(ss <= 0) {
                        clearInterval(time);
                    }
                }
                time = setInterval(goBack, 1);
            }

            function delay(obj) {
                var l = 0;
                var t = 0;
                while(obj) {
                    l = l + obj.offsetLeft;
                    t = t + obj.offsetTop;
                    obj = obj.offsetParent;
                }
                return {
                    left: l,
                    top: t
                };
            }
        </script>
    </body>

</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 蓝色区域属于 1 楼黑色区域属于 7 楼
    Lamport阅读 601评论 0 1
  • 起了个大早,昨夜刚刚下雨,今早雨停,空气中还有些湿润的味道,赶上了这辆班级租好的车,踏上了这个旅程。 道路总是漫长...
    温如故阅读 1,251评论 0 0
  • 刚刚看过了小森林冬春篇 这是一部完全抹杀了现在互联网时代的痕迹 联络需要用书信 没有各种社交方式 是一部通过文艺小...
    丁脸脸同学阅读 356评论 0 0
  • 旋风少女里的若白吧总是觉得太傻了,他明明那么喜欢白草,为她付出那么多,还是没有承认。
    zxyj阅读 267评论 0 0
  • 上次推过8月院线电影指南,当时斌叔就说《心理罪》对廖凡很期待,果然,廖凡还是没失望,但惊喜的是李易峰进步了。 《心...
    辣嘴电影阅读 572评论 0 0

友情链接更多精彩内容