开发日记(2015.9.21):Js中clearInterval、window.onload失效 及 Js添加animation的浏览器兼容

本文探讨了在JavaScript中遇到的clearInterval失效问题及其解决策略,以及如何处理DOM对象的animation属性以实现跨浏览器兼容。同时,针对window.onload在iOS和安卓微信浏览器中失效的问题,提出了使用jQuery的ready()方法作为替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在使用定时器的情况下,偶尔会出现clearInterval清除不了定时器的情况
这个时候,可以通过外加一个布尔值来进行判别操作:
1)失效情况:

var timer;
function doThis(){
    //需要循环执行的 方法主体
}
function func(){
    timer = window.setInterval(doThis,200);//每隔0.2秒执行一次
}
window.clearInterval(timer);//这里可能无法清除定时器

2)解决办法:

var timer;
var doOver = true;
function doThis(){
    //这里是需要循环执行的 方法主体
    //注意:执行完后,将doOver值变为false,供给调用计时器的函数判断
    doOver = false;
}
function func(){
    if(doOver){
        timer = window.setInterval(doThis,200);//每隔200毫秒执行一次doThis()
    }else{
        window.clearInterval(timer);//清除计时器
    }
}

二、js给DOM对象设置animation属性时,需要注意兼容浏览器:
1)一般写法:

    Obj.style.animation="动画名 0.3s linear";

2)兼容写法:

    Obj.style.animation="动画名 0.3s linear";
    Obj.style.webkitAnimation="动画名 0.3s linear";//这里就对chrome和Safari兼容

三、在页面加载时调用 某个js函数,通过window.onload来实现时,失效
在ios 或 安卓 微信的自带浏览器中,window.onload完全失效,解决办法是:
不用window.onload,而是采用jQuery的ready()方法,具体如下:
1)通常写法:

    <script>
    window.onload=function(){
        //这里是需要调用的函数
    }
    </script>

2)兼容微信写法:

    <script>
        $(document).ready(function(){
            //这里是要调用的函数
        })
    </script>   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值