这是一个jQuery幻灯片功能,我已经应用到悬停上的div,以便向下滑动一个按钮。
它工作得很好,除了现在每当有人进出它的时候,它都会不断地上下颠倒。
我想,如果我把一个或两个第二个延迟计时器放在它上面会更有意义。
如果用户在div上超过一秒钟或两秒,我将如何修改功能才能运行幻灯片?
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js "></script> <script type="text/javascript"> $("#NewsStrip").hover( function () { $("#SeeAllEvents").slideDown('slow'); },function () { $("#SeeAllEvents").slideUp('slow'); }); </script>
解决方法
您需要在鼠标悬停上设置一个计时器,并在幻灯片激活或鼠标移动时清除它,以先到者为准:
var timeoutId; $("#NewsStrip").hover(function() { if (!timeoutId) { timeoutId = window.setTimeout(function() { timeoutId = null; // EDIT: added this line $("#SeeAllEvents").slideDown('slow'); },2000); } },function () { if (timeoutId) { window.clearTimeout(timeoutId); timeoutId = null; } else { $("#SeeAllEvents").slideUp('slow'); } });