我试图在IE 11中找到requestAnimationFrame()方法的修补程序。我一直在浏览Web来查找解决方案。到目前为止,我已尝试包括polyfills,但该错误并未消失。

有人有解决IE11错误的方法吗?

这是使用jQuery 3.4的example,它使用requestAnimationFrame()方法作为fadeToggle()方法。您将能够检查IE11中的闪烁。

最佳答案

您可以尝试使用下面提到的一种合适的方法来解决问题。


添加背景色
使用CSS在正在淡入或淡出的元素上设置背景色。这是解决问题的最基本方法。
删除清除类型过滤器
淡入元素后,您可以添加此简单的回调函数来修复该错误。




$('#fadingElement').fadeIn(2000, function(){
       this.style.removeAttribute('filter');
});






使用自定义淡入/淡出方法
此方法替代了jQuery的内置fadeIn()和fadeOut()方法。




(function($) {
    $.fn.customFadeIn = function(speed, callback) {
        $(this).fadeIn(speed, function() {
            if(jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
        });
    };
    $.fn.customFadeOut = function(speed, callback) {
        $(this).fadeOut(speed, function() {
            if(jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
        });
    };
})(jQuery);





参考文献:

(1)jQuery fadeIn & fadeOut Problems in Internet Explorer

(2)How to Fix jQuery's Fade In/Out Functions for Internet Explorer

注意:我已在代码段中添加了代码,因为此站点未使用代码块正确格式化代码。

关于javascript - 如何防止IE11中的requestAnimationFrame()闪烁?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55943380/

10-13 03:26