怎么用js固定某个元素,让它不随页面的滚动而滚动,始终固定在窗口的某个位置?

JavaScript05

怎么用js固定某个元素,让它不随页面的滚动而滚动,始终固定在窗口的某个位置?,第1张

可以把该元素的定位设置为fixed,该元素就会始终在那个位置,不过要注意IE6下不支持固定定位,兼容IE6可以通过JS实现,不过JS实现的是滑动效果,要想在IE6下也实现固定定位那样的效果没办法做到。

建议使用css实现,效果更佳,使用position: fixed,固定定位,具体位置的调整是用top、left、right、bottom也可以使用margin调整

css实现代码

<div style="position: fixedtop:100px left: auto right: auto  bottom: auto " ></div>

一般的网站的浮动广告以及浮动菜单等可以使用fixed来实现,js的话需要计算位置以及滚动条滚动时触发事件从而进行计算使用window.onscroll事件代码如下

HTML部分代码

<div style="position:absolutebackground-color:redwidth: 50pxheight: 50px" id="box"></div>

Javascript部分代码

window.onscroll=function(){

    var box= document.getElementById("box")

    var t = document.documentElement.scrollTop || document.body.scrollTop

    box.style.top=t+"px"

}

直接使用Math.round(x*100)存在一个问题,有时会有很小的误差,显示很多位的小数位,如0.9996*100,就会变成99.96000000000001,我想要的在下面,感兴趣的朋友可以参考下哈

Math.round(x*100)/100,当然我要的是Math.round(x*100),这没有关系。但直接使用

Math.round(x*100)存在一个问题,有时会有很小的误差,显示很多位的小数位,如0.9996*100,就会变成

99.96000000000001,这不是我想要的。

查找javascript的功能,number类型有一个toFixed()函数,测试:

复制代码

代码如下:

alert((0.9996*100).toFixed(2))

使用Number.toFixed()可以格式数字显示任意的小数位!