使用jquery在照片上显示可点击的箭头(悬停)

时间:2010-11-03 18:53:58

标签: jquery hover

我有一张照片,当用户将鼠标悬停在照片上时,我会在照片顶部显示(使用绝对定位)2箭头,一张用于上一张照片,一张用于转到下一张照片。这是迄今为止的代码......

$('a.large_product_photo').hover(
  function () {
    $('.arrow').fadeIn(300);
  },
  function () {
    $('.arrow').fadeOut(300);
  }
);

问题在于,当鼠标悬停在箭头上点击时,箭头位于照片的顶部,它们会消失,因为照片中的鼠标距离被触发!我该怎么做才能解决问题?

提前致谢

3 个答案:

答案 0 :(得分:1)

请改用鼠标悬停。

$('a.large_product_photo').mouseover(...)

答案 1 :(得分:1)

一种简单而有吸引力的方法是使用计时器。一次mouseout或hover()事件的第二次function()调用设置超时:

timer = setTimeout("$('.arrow').fadeOut(300);", 1000);

然后,将鼠标悬停事件添加到箭头:

$('.arrow').mouseover(function(){
clearTimeout(timer)
});

鼠标悬停在箭头上的时间不到1000毫秒,因此计时器将被清除。此外,请务必在照片的鼠标悬停事件中添加类似的clearTimeout,这样如果您将鼠标移出然后再向右移动,则箭头不会消失。

这样做的净效果是在你移开鼠标后箭头会停留1秒钟。

答案 2 :(得分:0)

感谢超现实的梦想!任何有兴趣的人的最终代码......

var timer;
$('a.large_product_photo').hover(
  function () {
    $('.arrow').fadeIn(300);
    clearTimeout(timer);
  },
  function () {
    timer = setTimeout("$('.arrow').fadeOut(300);", 300);
  }
);

$('.arrow').mouseenter(function(){
    clearTimeout(timer);
});