当在一些div上使用jQuery"show"和"hide"时,我在Firefox中遇到了令人讨厌的"闪烁"效果.有什么想法可以发生吗?
取决于闪烁的含义(如果它只在页面加载时闪烁),而不是:
$(document).ready(function(){
$("hide").hide();
});
<div id="hide">My Hidden Text</div>
Run Code Online (Sandbox Code Playgroud)
尝试在CSS中添加display:none:
<div id="hide" style="display:none">My Hidden Text</a>
Run Code Online (Sandbox Code Playgroud)
在允许JavaScript操作之前,CSS应用于DOM,因此如果这样做,加载页面时应该没有闪烁.
另外值得注意的是,在Firefox中,当您更改窗口大小(垂直)并且当前滚动位置接近或位于窗口底部时,会出现导致窗口闪烁的错误.
闪烁来自jQuery代码的这一行,在show()方法中:
var elem = jQuery("<" + tagName + " />").appendTo("body");
Run Code Online (Sandbox Code Playgroud)
它可以检测它应该用于display属性的CSS,因为不同的标签会得到不同的值(div:block,span:inline,tr:table-row等).以这种方式操作DOM会导致闪烁.
使用:
jQuery('...').css('display','block');
Run Code Online (Sandbox Code Playgroud)
这通常会做同样的事情.
| 归档时间: |
|
| 查看次数: |
19423 次 |
| 最近记录: |