js实现楼层效果

  今天自己写个楼层效果,有一点烦躁,小地方犯错误。各位大神来修改不足啊!!!


<!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>
 
时间: 2024-12-20 19:29:45

js实现楼层效果的相关文章

jQuery楼层效果

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>jQuery楼层效果</title> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script

js拖拽效果实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>    <meta

图片切换特效(1):原生JS图片切换效果

转自:http://www.codefans.net/jscss/code/4699.shtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

JS图片切换效果

源地址:http://www.codefans.net/jscss/code/4699.shtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

js实现手风琴效果

之前在慕课网上有练习手风琴效果,但是老师使用jquery简简单单的两三行实现了,今天自己用js练习一下效果 <div id="divbox"> <ul> <li class="pic1"><a href="javascript:;">床头明月光</a></li> <li class="pic2"><a href="javascr

原生JS实现分页效果1.0

不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>原生JS实现分页效果</title> <style> body{ margin:100px 200px; } #page{ margin:20px 0; } #

JS 之手风琴效果

<!DOCTYPE html> <html> <head> <meta charset= "utf-8" /> <title></title> <meta content= " "  />  <meta content= " "  /> <style> #c{width:500px;height:300px;overflow:hidden;

js元素闪动效果

<img src="http://yjy.allbring.com/UpLoadFiles/head/p1_20140326104945_17-10164142709.jpg"  style=" position:relative;"  id="aa" />function setAnimation() { var attr = ["top", "left"], b = 0; u = setIn

React.js实现原生js拖拽效果及思考

一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖拽效果. 首先,其实拖拽效果的思路是很简单的.主要就是三个步骤: 1.onmousedown的时候,启动可拖拽事件,记录被拖拽元素的原始坐标参数. 2.onmousemove的时候,实时记录鼠标移动的距离,结合被拖拽元素第一阶段的坐标参数,计算并设置新的坐标值. 3.onmouseup的时候,关闭可拖拽事件