setInterval在IE中没有作用但是chrome正常
topbtn.onclick=function(){//alert("Hello")timer=setInterval(function(){varbacktop=doc...
topbtn.onclick =
function () {
// alert("Hello")
timer = setInterval(
function () {
var backtop = document.body.scrollTop;
var speedtop = backtop / 5;
document.body.scrollTop = backtop - speedtop;
if (backtop == 0) {
clearInterval(timer);
}
}, 30);
}
我定义了一个点击向上的按钮,在chrome中是正常的。在IE中就是不起作用,求大神解答~~ 展开
function () {
// alert("Hello")
timer = setInterval(
function () {
var backtop = document.body.scrollTop;
var speedtop = backtop / 5;
document.body.scrollTop = backtop - speedtop;
if (backtop == 0) {
clearInterval(timer);
}
}, 30);
}
我定义了一个点击向上的按钮,在chrome中是正常的。在IE中就是不起作用,求大神解答~~ 展开
2个回答
展开全部
找到原因了,在ie里document.body.scrollTop获取的值一直都是0,在ie要用 document.documentElement.scrollTop 但是chrom又获取不到这个,所有做了个适配
代码如下
<script>
var str = navigator.userAgent,
isIE = str.indexOf('IE') != -1 ? true : false;
var topbtn = document.getElementById('btn');
topbtn.onclick = function () {
var timer = setInterval(
function () {
var backtop = isIE ? document.documentElement.scrollTop : document.body.scrollTop;
var speedtop = backtop / 5;
if (isIE) {
document.documentElement.scrollTop = backtop - speedtop;
} else {
document.body.scrollTop = backtop - speedtop;
}
if (backtop == 0) {
clearInterval(timer);
}
}, 30);
}
</script>
追问
按照你的方法我又试了一次,
document.documentElement.scrollTop在IE11里面获取到值还是0啊,依然是没有效果,你那边尝试成功了吗~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询