js写position fixed
时间: 2024-04-21 22:18:19 浏览: 191
可以利用JavaScript的滚动事件和position:fixed属性来实现position fixed效果。在IE6中,position:fixed存在兼容性问题,可以参考《【CSS】IE6中的position:fixed问题与随滚动条滚动的效果》一文来解决。具体实现方法可以参考下面的代码示例:
```javascript
window.onscroll = function() {
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var fixedDiv = document.getElementById('gs');
if (fixedDiv) {
fixedDiv.style.top = scrollTop + 120 + 'px';
}
}
```
上述代码中,通过监听滚动事件,获取当前滚动条的位置scrollTop,然后将position:fixed的元素的top属性设置为scrollTop+120px,即可实现position fixed效果。需要注意的是,这里的120px是一个固定值,可以根据实际情况进行调整。
相关问题
position: fixed;定位跑偏
position: fixed;定位跑偏可能是由于以下原因导致的:
1. 父元素的定位不正确,导致子元素的定位也不正确。
2. 元素的宽度或高度设置不正确,导致元素的位置偏移。
3. 浏览器的缩放比例不正确,导致元素的位置偏移。
解决方法:
1. 检查父元素的定位是否正确,如果不正确,需要调整父元素的定位。
2. 检查元素的宽度或高度是否正确,如果不正确,需要调整元素的宽度或高度。
3. 检查浏览器的缩放比例是否正确,如果不正确,需要调整浏览器的缩放比例。
4. 如果以上方法都无法解决问题,可以考虑使用 JavaScript 来动态调整元素的位置。
解决CSS position:fixed 兼容问题
CSS中的position:fixed属性用于将元素固定在浏览器窗口的某个位置,无论滚动条如何滚动,该元素都会保持不变。但是,该属性在不同的浏览器中有不同的兼容性问题,下面介绍几种解决方法。
1. IE6兼容问题
IE6不支持position:fixed属性,可以使用position:absolute加javascript实现。
```
<style>
#fixedDiv {
position: absolute;
right: 0;
bottom: 0;
}
</style>
<script>
window.onscroll = function() {
var top = document.documentElement.scrollTop || document.body.scrollTop;
document.getElementById("fixedDiv").style.top = (top + document.documentElement.clientHeight - document.getElementById("fixedDiv").offsetHeight) + "px";
}
</script>
<div id="fixedDiv">我是fixed元素</div>
```
2. 其他浏览器兼容问题
其他浏览器中,position:fixed属性很好用,但是如果在某些情况下,fixed元素的父元素设置了transform属性,会导致fixed元素表现异常。可以使用position:sticky属性代替。
```
<style>
#fixedDiv {
position: sticky;
position: -webkit-sticky; /* Safari */
top: 0;
background: #fff;
}
</style>
<div id="fixedDiv">我是fixed元素</div>
```
另外,还可以使用JavaScript来实现fixed效果,但是需要考虑到性能问题。
阅读全文