Javascript 为滑动图像添加悬停和onclick效果?

Javascript 为滑动图像添加悬停和onclick效果?,javascript,jquery,onclick,hover,Javascript,Jquery,Onclick,Hover,我正在使用jQuery脚本在我的屏幕上滑动图像。我不知道如何修复我的悬停(现在当我需要滑动鼠标时,它只需滑动1个徽标)和单击我的“下一个”和“上一个”按钮的效果(按1个徽标滑动) 以下是我尝试过的两个按钮的JavaScript: if(o.btnPrev) $(o.btnPrev).click(function() { return go(curr-o.scroll); }); if(o.btnNext) $(o.

我正在使用jQuery脚本在我的屏幕上滑动图像。我不知道如何修复我的
悬停
(现在当我需要滑动鼠标时,它只需滑动1个徽标)和
单击我的“下一个”和“上一个”按钮的效果(按1个徽标滑动)

以下是我尝试过的两个按钮的JavaScript:

if(o.btnPrev)
        $(o.btnPrev).click(function() {
            return go(curr-o.scroll);
        });

    if(o.btnNext)
        $(o.btnNext).click(function() {
            return go(curr+o.scroll);
        });

    if(o.btnGo)
        $.each(o.btnGo, function(i, val) {
            $(val).click(function() {
                return go(o.circular ? o.visible+i : i);
            });
        });
编辑-我找到了如何将
悬停
单击
事件添加到我的按钮,但我仍然需要在按钮上添加一个
悬停
效果,该按钮将徽标滑动到
鼠标出
。有人能给我指一下正确的方向吗

编辑-2-有了新的jq代码,我现在需要的是当鼠标在箭头上时滚动我的徽标,直到它退出,所以我希望当im在箭头上时,它滚动徽标1by1,直到coursor退出,目前,我需要走出去,在箭头上滚动下一个标志,我还需要添加鼠标上方的滚动速度,thnaks。。 用于按钮的新JQ scritp

if(o.btnPrev)
        $('#previous').click (function () {
            return go(curr-o.scroll);
        });

    if(o.btnNext)
        $('#next').click (function ()  {
            return go(curr+o.scroll);
        });

    if(o.btnGo)
        $.each(o.btnGo, function(i, val) {
            $(val).click (function()  {
                return go(o.circular ? o.visible+i : i);
         });
}))


下面是JSFIDLE和完整的JQ脚本:

您的小提琴中有一些时髦的东西。

1.)您没有为滚动按钮声明
mouseover
事件。如果你想在鼠标上方发生什么,你需要声明它

2.)您的代码杂乱无章;这将是一个痛苦的调试。我将一步一步地解释这个过程,我们将制作一个丑陋的(但功能性的)演示,以便您可以扩展

如何看待这个问题

您需要两个按钮,每个按钮都有自己的
单击
鼠标输入
,和
鼠标输出
调用。点击是不言自明的。由
mouseenter
mouseout
事件创建的悬停效果需要使用
setInterval
重复“循环”操作

让我们使用简单的HTML来传达这个想法:

<div id="leftButton">Left</div>

<div id="conveyor">
    <img src="..." />
    <img src="..." />
    <img src="..." />
</div>

<div id="rightButton">Right</div>
接下来,让我们将这些函数绑定到按钮的单击事件:

//If we click either button, let's cycle the conveyor.
$("#rightButton").click(cycleRight);
$("#leftButton").click(cycleLeft);
我们需要分两步来考虑悬停——鼠标悬停在上面,鼠标悬停在外面。对于每个步骤,我们将设置或清除一个定时器变量,该变量将为输送机提供我们想要的效果。让我们调用该变量
hoverCycle

首先,
鼠标盖

//The mouse-enter (ie: the *start* of the hover)
$("#rightButton").on("mouseenter", function() {
    clearInterval(hoverCycle);
    hoverCycle = setInterval(cycleRight, 200);
});
$("#leftButton").on("mouseenter", function() {
    clearInterval(hoverCycle);
    hoverCycle = setInterval(cycleLeft, 200);
});
最后是
mouseout
——它只需要清除
hoverCycle
变量:

//The mouse-out (ie: the *end* of the hover)
$("#rightButton").on("mouseout", function() {
    clearInterval(hoverCycle);
});
$("#leftButton").on("mouseout", function() {
    clearInterval(hoverCycle);
});


注意:这并不漂亮,但我给您留下了扩展的空间。

为什么不使用现有的工具呢?此外,这有时被称为图像“传送带”。如果你在谷歌上搜索它,网上有很多教程。我找到了,但我还需要一件事的帮助,我编辑了我的文章。thanxi将这个“.bind('click mouseover',function()”添加到jq脚本中的我的按钮中“click mouseover”不是一个事件。尝试只使用
mouseover
。此外,如果这是jQuery,那么您应该改为使用
.on(event,function)
方法。
//The mouse-enter (ie: the *start* of the hover)
$("#rightButton").on("mouseenter", function() {
    clearInterval(hoverCycle);
    hoverCycle = setInterval(cycleRight, 200);
});
$("#leftButton").on("mouseenter", function() {
    clearInterval(hoverCycle);
    hoverCycle = setInterval(cycleLeft, 200);
});
//The mouse-out (ie: the *end* of the hover)
$("#rightButton").on("mouseout", function() {
    clearInterval(hoverCycle);
});
$("#leftButton").on("mouseout", function() {
    clearInterval(hoverCycle);
});