【发布时间】:2015-01-10 15:13:27
【问题描述】:
此代码旨在使框在更改文本之前缩小,并具有淡入/淡出效果。唯一的问题是,它总是在滚动位置改变时触发。例如,假设滚动位置为 100 像素,然后用户再次向下滚动,您会看到文本(li.um 内部)淡入然后淡出。有没有办法阻止代码一直运行,并且只有当滚动位置从 >60 变为
$(window).bind('scroll', function() {
var viewportWidth = $(window).width();
if ($(window).scrollTop() > 60) {
$("li.um").fadeOut(200);
$("ul.undermenu").stop(true, false).animate({width:'160px'}, { duration: 500, queue: true});
$("ul.undermenu").animate({height:'60px'}, { duration: 200, queue: true});
window.setTimeout(function () {
$('li.um').html('12345678901 pete@rufusmusic.co.uk');
}, 700);
$("li.um").fadeIn(200);
}
else {
$("li.um").fadeOut(200);
$("ul.undermenu").stop(true, false).animate({height:'30px'}, { duration: 200, queue: true});
$("ul.undermenu").animate({width:viewportWidth}, { duration: 500, queue: true});
window.setTimeout(function () {
$('li.um').html('Email: pete@rufusmusic.co.uk | Call: 12345678901 | Call: 01290923876');
}, 700);
$("li.um").fadeIn(200);
}
});
Fiddle(向下滚动几次,看看我对文本淡入/淡出的意思)
【问题讨论】: