首页新闻找找看学习计划

关于javascript实现的网站页面侧边悬浮框"抖动"问题

0
[已解决问题] 解决于 2016-12-14 20:42

以下是做的侧边悬浮框,但是会发现每当滚动条滚动时,悬浮框都会抖动,而浏览了一些其他网站,发现他们的悬浮框都不会抖动,这是如何实现的?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
*{margin:0px; padding:0px;}
body{height:2000px;}
#div1{width:100px; height:200px; background:orange; position:absolute; left:0px; top:200px;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById("div1");
window.onscroll = window.onresize = function(){
var oScrollH = document.documentElement.scrollTop || document.body.scrollTop;
oDiv.style.top = 200 + oScrollH + "px";
};
};
</script>
</head>

<body>
<div id="div1"></div>
</body>
</html>

流炎飞雪的主页 流炎飞雪 | 初学一级 | 园豆:6
提问于:2016-12-14 07:30
< >
分享
最佳答案
0
#div1{
position:fixed; _position:absolute; _bottom:auto; _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0))); } *html{ background-image:url(about:blank); background-attachment:fixed; }

兼容IE6的css hack,按照你的需求改一下top位置就行。

另外,国外仍有很多用户使用windows2000,IE版本5.5的。

因为国内几乎都是盗版,所以造成了IE6没人用的错觉。

奖励园豆:5
逐影 | 小虾三级 |园豆:1182 | 2016-12-14 15:21

感谢你的回答,我在IE6下试了试,确实可以解决这个问题,后面只要做个兼容版的就OK了。太感谢了!

流炎飞雪 | 园豆:6 (初学一级) | 2016-12-14 20:41
其他回答(1)
0

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
*{margin:0px; padding:0px;}
body{height:2000px;}
#div1{width:100px; height:200px; background:orange;
position:fixed; left:0px; top:200px;
}
</style>
<script>
// window.onload = function(){
// var oDiv = document.getElementById("div1");
// window.onscroll = window.onresize = function(){
// var oScrollH = document.documentElement.scrollTop || document.body.scrollTop;
// oDiv.style.top = 200 + oScrollH + "px";
// };
// };
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

张云山 | 园豆:642 (小虾三级) | 2016-12-14 08:26

不需要js,直接改成position:fixed;

支持(0) 反对(0) 张云山 | 园豆:642 (小虾三级) | 2016-12-14 08:27

@张云山: 感谢你的回答,但是position:fixed在IE6下是不支持的,那么在IE6下有解决的方法么?

支持(0) 反对(0) 流炎飞雪 | 园豆:6 (初学一级) | 2016-12-14 11:04

@流炎飞雪: 现在的时代还需要兼容IE6吗?

 


position:fixed;

/*为了让DIV永远在最前面,不被其他元素遮住*/

_position:absolute;/*这里开始的2句代码是为ie6不兼容position:fixed;而写的*/ 

支持(0) 反对(0) 张云山 | 园豆:642 (小虾三级) | 2016-12-14 11:07

@张云山: 感谢你的回复,你的意思是ie6下用js来实现,那也就是说ie6是解决不了抖动的问题么?

支持(0) 反对(0) 流炎飞雪 | 园豆:6 (初学一级) | 2016-12-14 11:18

@流炎飞雪: 我的意思是现在一般不用考虑IE6了,不过你要是真想兼容ie6也不是没有办法,你可以还是用position:absolute方法,但这个对象有个父级必须是跟浏览器窗口大小一样就好了。

支持(0) 反对(0) 张云山 | 园豆:642 (小虾三级) | 2016-12-14 11:21

@张云山: 感谢你的回复,我试了下加父级,但是还是实现不了,和子级的效果是一样的,不知道能再说的具体点么?

支持(0) 反对(0) 流炎飞雪 | 园豆:6 (初学一级) | 2016-12-14 14:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册