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中就是不起作用,求大神解答~~
展开
 我来答
JIA丨XIAN
推荐于2016-03-17 · TA获得超过630个赞
知道小有建树答主
回答量:475
采纳率:20%
帮助的人:323万
展开全部

找到原因了,在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啊,依然是没有效果,你那边尝试成功了吗~
追答

我是可以的,这个是滚动条的高度,你是不是没滚动啊?

千羽千寻online
2015-09-22 · TA获得超过645个赞
知道小有建树答主
回答量:735
采纳率:37%
帮助的人:182万
展开全部
ie与谷歌两个对于js的支持是不一样的,你所写的一些东西在谷歌中是支持这样的方法的,但是在ie里面是无法识别的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式