[英]Show/Hide the Image based on Scrolling in Javascript
我必须基于滚动显示/隐藏图像。 但是这里的条件是,如果用户在页面顶部/底部附近多次上下滚动,则图像不应反复淡入和淡出。 在淡入之前,它应该收听1秒钟。以下是我尝试的逻辑。
码
<div class="a" style="height: 300px;width: 300px;background-color: green;position:fixed;">
</div>
var $toTop = $('div.a');
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$toTop.fadeIn();
} else if ($toTop.is(':visible')) {
$toTop.fadeOut();
}
});
您可以通过将超时保存在jquery主数据对象中来实现,该超时在触发滚动事件时等待一秒钟执行。 该事件还将清除所有先前注册的超时:
var $toTop = $('div.a'); $(window).scroll(function() { clearTimeout($.data(this, 'waitASecond')); $toTop.stop(); $.data(this, 'waitASecond', setTimeout(function() { if ($(window).scrollTop() > 100) { $toTop.fadeIn(); } else if ($toTop.is(':visible')) { $toTop.fadeOut(); } }, 1000)); });
body { height:1000px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> Scroll Down and wait.... <div class="a" style="height: 700px;width: 300px;background-color: green;display:none"></div> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.