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

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

<!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>

MMMHUHU
浏览 676回答 8
8回答

料青山看我应如是

#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没人用的错觉。

Smart猫小萌

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

暮色呼如

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

冉冉说

@流炎飞雪: 现在的时代还需要兼容IE6吗?   position:fixed; /*为了让DIV永远在最前面,不被其他元素遮住*/ _position:absolute;/*这里开始的2句代码是为ie6不兼容position:fixed;而写的*/ 

素胚勾勒不出你

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

拉风的咖菲猫

@张云山: 感谢你的回复,我试了下加父级,但是还是实现不了,和子级的效果是一样的,不知道能再说的具体点么?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript