博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取任意元素距离页面顶部的距离 楼梯效果
阅读量:4975 次
发布时间:2019-06-12

本文共 2384 字,大约阅读时间需要 7 分钟。

HTMLElement.prototype.getElementTop=function(){     var top = this.offsetTop;     var cur = this.offsetParent;     while(cur != null){           top += cur.offsetTop;           cur = cur.offsetParent;    }    return top;      }直接调用getElementTop()即可或得元素距离顶部的值 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

 楼梯效果:

window.addEventListener("load",function(){    floor.init();},false);//为所有元素添加获得距页面顶部距离的方法,返回一个top值HTMLElement.prototype.getElementTop=function(){    //获得当前元素距父元素顶部的距离,保存在变量top中    var top=this.offsetTop;    //将当前元素的相对定位父元素对象保存在变量curr中    var curr=this.offsetParent;    //循环,只要curr不等于null,就继续获得父元素的父元素    while(curr!=null){    //    再次获得curr距它的父元素顶部的距离,累加到top中        top+=curr.offsetTop;    //    将curr再设置为curr的相对定位的父元素        curr=curr.offsetParent;    }    return top;}var floor={    init:function(){        var self=this;        window.addEventListener("scroll",function(){            //获得页面滚动的高度            var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;            //找到class为floor的div下的head下的所有span,保存在数组spans中            var spans=$("div.floor>header>span");            //遍历spans中每个span            for(var i=0;i
scrollTop+100&&spanTop
ul").addEventListener("mouseover",function(){ var e=window.event||arguments[0]; var target=e.srcElement||e.target; if(target.nodeName=="A"&&target.className!="etitle"){ target.style.display="none"; target.parentNode.$(".etitle").style.display="block"; } },false); $("#elevator>ul").addEventListener("mouseout",function(){ var e=window.event||arguments[0]; var target=e.srcElement||e.target; if(target.nodeName=="A"&&target.className=="etitle"&&$(target.href.slice(-3)+">header>span").className!="hover"){ target.style.display="none"; target.parentNode.$("a:first-child").style.display="block"; } },false); }, elevState:function(){ //判断elevator元素的显示状态 $("#elevator").style.display=$("div.floor>header>span.hover").length!=0?"block":"none"; //获得所有span的数组和所有li的数组 var spans=$("div.floor>header>span"); var lis=$("#elevator>ul>li"); //遍历spans中每个span for(var i=0;i

 

转载于:https://www.cnblogs.com/ws-zhangbo/p/5806703.html

你可能感兴趣的文章
Windows Phone开发(37):动画之ColorAnimation
查看>>
DevExpress的Web控件汉化方法
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
结对编程项目-四则运算整体总结
查看>>
Android studio怎么修改文件名
查看>>
sass学习笔记-安装
查看>>
多缓存并存
查看>>
Flask (二) cookie 与 session 模型
查看>>
修改添加网址的教程文件名
查看>>
hdu 1045:Fire Net(DFS经典题)
查看>>
[BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
查看>>
裁剪图片
查看>>
数据结构实习 problem L 由二叉树的中序层序重建二叉树
查看>>
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>
设置PL/SQL 快捷键
查看>>
个人阅读作业7
查看>>
转载:深入浅出Zookeeper
查看>>
GMA Round 1 新程序
查看>>
node anyproxy ssi简易支持
查看>>