我的jQuery代码有问题,每当我过渡到存储库中的另一个html文件时,都会在下一页过渡之前发生这种微妙的闪烁。
代码如下:
$(document).ready(function() {
$('body').hide().fadeIn(200);
$("a").click(function(e) {
e.preventDefault();
$link = $(this).attr("href");
$("body").fadeOut(200,function(){
window.location = $link;
});
});
});
我真的不知道如何解决它,可以使用一些帮助找出...谢谢!
答案 0 :(得分:0)
要了解此行为,请首先查看$(document).ready
在jQuery中的工作方式:
当DOM(文档对象模型)已经建立时,发生ready事件。 加载。
$(document).ready
内的代码-hide()
函数-在页面呈现后立即执行,自然会引起明显的闪烁,然后突然body
隐藏然后淡入。
解决此问题的一种方法是添加一些CSS,并从另一个角度解决问题。
首先,您可以添加一个类,例如。 .faded-out
到HTML中的body
元素。
需要添加以下CSS代码:
body{
transition: opacity 200ms ease-in-out;
}
.faded-out{
opacity: 0;
}
({200ms
对应于jQuery中的200
; ease-in-out
对应于jQuery中的默认动画计时功能,swing
)
然后,您可以像这样从.faded-out
内部的body
中删除$(document).ready
类:
$(document).ready(function() {
$('body').removeClass("faded-out");
...your remaining code
});
});
在调用$(document).ready
之前,身体逐渐淡出,因此感知到的效果应该是相同的,减去闪烁。