Javascript 为滑动图像添加悬停和onclick效果?
我正在使用jQuery脚本在我的屏幕上滑动图像。我不知道如何修复我的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.
悬停
(现在当我需要滑动鼠标时,它只需滑动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);
});