| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:悬浮在页面上的窗口
只看楼主 加入收藏
awl805
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:161
专家分:664
注 册:2012-11-6
收藏
得分:0 
我这个方法很简单,就是比较粗糙,光滑度也不是很好。
function xuanfuDiv(){
    document.getElementById("xxx").style.top = Math.floor((document.documentElement.scrollTop + 200+document.getElementById("xxx").offsetTop)/2);
    setTimeout("xuanfuDiv()",10);
}
我简单解释下代码,第一句就是修正div的top咯。
math.floor是向下取整,document.documentElement.scrollTop 是滚动条滚动的数值,offsetTop是div的不带px单位的top值,200是所要的位置
修正top的简单思路就是去div当前top和动态期望点的中点位置,然后一直取中点位置。逐步逼近,因为有向下取整,所以肯定会重合的。
第二句就简单了,没过10毫秒就调用一个xuanfuDiv这个函数不断修正div的top,搞定。
2012-11-21 12:18
awl805
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:161
专家分:664
注 册:2012-11-6
收藏
得分:0 
当然要怎么逼近,自己可以修改,还有,怎么光滑移动,你可以设置时间参数。
差不多就是这样了,方法十分简单,
2012-11-21 12:20
awl805
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:161
专家分:664
注 册:2012-11-6
收藏
得分:0 
觉得占用资源,你可以把循环修正位置放在window。onscroll事件当中,反正差不多就是这样啦,这个是基于单片机的死循环修正原理

你也可以用clearTimeout(t)来结束死循环,当然要在前面用var t=setTimeout();
2012-11-21 12:42
快速回复:悬浮在页面上的窗口
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037922 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved