元素可见时的jQuery

元素可见时的jQuery,第1张

元素可见时的jQuery

~~JQuery中没有事件可检测CSS更改

可能是:

DOM L2事件模块定义了突变事件;其中之一-DOMAttrModified是您需要的。当然,它们并未得到广泛实施,但
至少在Gecko和Opera 浏览器中 受支持

来源:使用Jquery更改css属性时的事件检测

如果没有事件,则可以使用

setInterval
函数,如下所示:

var maxTime = 5000, // 5 seconds    startTime = Date.now();var interval = setInterval(function () {        if ($('#element').is(':visible')) { // visible, do something clearInterval(interval);        } else { // still hidden if (Date.now() - startTime > maxTime) {     // hidden even after 'maxTime'. stop checking.     clearInterval(interval); }        }    },    100 // 0.1 second (wait time between checks));

请注意,使用

setInterval
这种方式进行监视可能会影响页面的性能。

2018年7月7日:
由于此答案最近获得了一些知名度和投票,因此这里是检测CSS更改的其他更新:

突变事件现已被性能更友好的突变观察者所取代。

MutationObserver接口提供了监视对DOM树所做的更改的功能。它旨在替代DOM3事件规范中较旧的Mutation Events功能。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5559656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存