这是我已将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');
    }
});

See it in action.

08-15 19:57