我想隐藏滚动元素。但是,直到大约四分之一/半窗口滚动才会隐藏,这不是我想要的。滚动开始后它应该隐藏起来。
我有一个不断淡入淡出的元素,直到你开始滚动,此时它会消失。滚动回到顶部,它会再次出现并开始淡入淡出。
这是我的代码:
<script type="text/javascript">
$(function () {
var $element = $('#scrollDown');
var $load = true;
var $pos = ( $(window).scrollTop() );
(function fadeInOut() {
setInterval(function () {
if ($load) {
$element.fadeIn(750, function () {
$element.fadeOut(1000);
});
}
$(window).scroll(function() {
if ($(this).scrollTop() > $pos) {
$load = false;
$element.fadeOut(1000);
}
else {
$load = true;
}
});
}, 500);
}) ();
}
答案 0 :(得分:1)
如果我明白了,你想在开始滚动时消失元素,当重新返回到顶部时,再次出现,所以我会尝试这样做:
$(window).scroll(function() {
if($(this).scrollTop() > 0) {
$element.fadeOut(1000);
} else {
$element.fadeIn(1000);
}
});
这就是你需要的吗?
答案 1 :(得分:0)
您需要做的就是将if语句更改为类似..
$(window).scroll(function() {
if ($element.css("opacity") == 1) {
$load = false;
$element.fadeOut(1000);
}
else {
$load = true;
}
});
现在它会在滚动开始时立即触发,并且只会因为if语句而触发一次。