<body>
<div style="position: absolutez-index:90" id="div1">我不动</div>
<div>我动<div>
</body>
//有的将position设置成fixed,我试了试效果不如position好,设置z-index,向里的深度,我这儿设置90,你要覆盖几个div,设置数大于那个数就行。
js中:
我这儿用jquery写。
$(document).ready(function(){
$(window).scroll(function(){//滚动时触发函数
$("#div1").css("top",$(document).scrollTop())//将滚动条高度赋给悬浮框。
})
})
导入jquery库,效果就出来了。
你说的动态悬浮窗不知道说的是哪一种,姑且认为是浏览器网页打开之后跑来跑去的那种,只讲大概思路,代码你自己去敲哈,这样才能充分吸收回归正题,动态悬浮窗,可以拆开理解,一个是动、一个悬浮。
一、先讲悬浮这个概念,首先这个东西能够在浏览器窗口显示,能够飘来飘去还不影响网页里面其他内容的正常显示,那么怎么才能实现呢?没错,就是定位!那么又有个问题是用绝对定位还是固定定位?这个就看是想让这个小东西是在整个文档中飘还是浏览器的可视窗口飘了(正常情况下都是在浏览器可视窗口飘,即固定定位),至于为什么不是相对定位,请看w3c手册;
二、现在悬浮的问题解决了,就剩一个问题了那就是动动动动动动动起来,那么怎么才能让他动起来呢?这里就需要用到setInterval
、clientWidth和clientHeight;首先获取当前浏览器窗口的宽、高
即document.documentElement.clientWidth和document.documentElement.clientHeight,然后获取这个浮动小窗的初始位置,那么高潮部分来了,怎么才能动呢?不要急慢慢来。
初始盒子位置在左上角,然后判断如果盒子距离浏览器窗口右边距离大于0,那么向右移动y一步,同样距离浏览器窗口下边距离大于0那么向下移动一步,当盒子距离浏览器窗口右边距离等于0时像左移动一步,同样距离浏览器窗口下边距离等于0时向上移动一步,然后设置定时器,多久循环一次
以上就是动态悬浮窗的大概思路(卧槽,终于打完了手好累!!!)
把div1的top写到div的style属性中,如:<div id="div1" style="top:-80px"></div>不要写到样式里。
js获取样式里的top要使用getComputedStyle,你可以百度一下。需要兼容,最简单的方案就是上面的那样。