Javascript 如何在页面加载时使用fadeIn元素而不是“fadeIn”;出现;?
我是jquery上的一个超级高手,我需要弄清楚如何更改此代码:Javascript 如何在页面加载时使用fadeIn元素而不是“fadeIn”;出现;?,javascript,jquery,Javascript,Jquery,我是jquery上的一个超级高手,我需要弄清楚如何更改此代码: $('.social li').appear(); $(document.body).on('appear', '.social li', function(e, $affected) { var fadeDelayAttr; var fadeDelay; $(this).each(function(){ if ($(this).data("delay")) { f
$('.social li').appear();
$(document.body).on('appear', '.social li', function(e, $affected) {
var fadeDelayAttr;
var fadeDelay;
$(this).each(function(){
if ($(this).data("delay")) {
fadeDelayAttr = $(this).data("delay")
fadeDelay = fadeDelayAttr;
} else {
fadeDelay = 0;
}
$(this).delay(fadeDelay).queue(function(){
$(this).addClass('animated').clearQueue();
});
})
});
为了让它在有人进入登录页时立即启动动画,现在它在IE10和IE11之外的所有东西上都能正常工作,被告知在默认情况下将其更改为加载,而不是“出现”,但我尝试了文档准备/加载,但无法使其工作…您可以尝试将所有列表项淡入视图,每一个都有一个250毫秒的进程延迟:
$(window).load(function() {
$('.social li').hide().each(function(i) {
$(this).delay((i + 1) * 250).fadeIn(2000);
});
});
编辑:
使用与前面代码相同的逻辑进行重构,使用window.load
方法,因为加载事件在文档加载过程结束时触发。此时,文档中的所有对象都在DOM中,所有图像和子帧等都已完成加载。因此,使用此事件可以在动画中将列表项淡入视图,在视图中它们的初始状态将被隐藏
您声明了两个变量fadeDelayAttr
和fadeDelay
,但我注意到只有fadeDelay
正在使用,因此可以丢弃fadeDelayAttr
。此外,本部分代码:
if ($(this).data("delay")) {
fadeDelayAttr = $(this).data("delay")
fadeDelay = fadeDelayAttr;
} else {
fadeDelay = 0;
}
可以使用逻辑或(| |)
将其简化为空合并运算符:
由于fadeDelay变量从data delay属性获取其值,因此可以将其作为delay方法的参数传入,最后重构代码如下所示:
$(window).load(function() {
$('.social li').hide().each(function() {
var fadeDelay = $(this).data("delay") || 0;
$(this).delay(fadeDelay).fadeIn(2000);
});
});
你能给我一个jsfiddle吗这是jsfiddle,希望它能更清楚我很抱歉,我太笨了,不能这么做,如何编辑我发布的脚本或者在哪里添加你的脚本,然后我应该删除我的脚本吗?
$(window).load(function() {
$('.social li').hide().each(function() {
var fadeDelay = $(this).data("delay") || 0;
$(this).delay(fadeDelay).fadeIn(2000);
});
});