【问题标题】:How to change images on hover on and on with jQuery?如何使用 jQuery 更改悬停时的图像?
【发布时间】:2017-02-10 12:17:19
【问题描述】:

我遇到了这样一个问题: 在我的<div></div> 里面总是有 5 张图片,只有 1 张是可见的,其他 4 张是隐藏的。

<style>
   #id2, #id3, #id4, #id5 { display: none; }
</style>

<div>
   <img id="id1" src='image.jpg'>
   <img id="id2" src='image.jpg'>
   <img id="id3" src='image.jpg'>
   <img id="id4" src='image.jpg'>
   <img id="id5" src='image.jpg'>
</div>

我的目标是在悬停时以恒定时间戳(例如 1 秒)更改它们。

$('document').ready(function(){
   $('#1').hover(function(){
      // #id1 hide
      // #id2 show
      // #id2 hide
      // #id3 show
      // #id3 hide
      // #id4 show
      // #id4 hide
      // #id5 show
      // #id5 hide
      // #id1 show
      //  and so on...
   });
});

它将用作视频预览,将从 MySQL DB 生成 div 和内部图像。 任何帮助表示赞赏。

【问题讨论】:

  • 是的,会有多个 div。
  • 当鼠标在 div 图片上时应该替换,在鼠标离开后它们应该停止。
  • 首先将 id 更改为字母数字,例如 id1id2
  • @PranavCBalan 我认为他的意思是常规视频预览,您将光标移动到视频缩略图顶部,它会旋转 1-5 张图像(基本上取自视频)。

标签: javascript jquery html frontend


【解决方案1】:

根据我从您的问题中了解到的情况,这是一个可行的示例:

$('.preview').hover(function() {
  var $that = $(this),
      toggleFunction = function() {
  	  var $visibleImg = $('img:visible', $that),
          $nextImg = $visibleImg.next('img');
        
      if(!$nextImg.length) {
        $nextImg = $('img:first-child', $visibleImg.parent());
      }
  	
      $nextImg.show().siblings().hide();
    };
	$that.data('interval', window.setInterval(toggleFunction, 1000));
    toggleFunction();
}, function() {
	window.clearInterval($(this).data('interval'));
});
.preview img {
  display: none;
}

.preview img:first-child {
  display: block;
}

.preview {
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="preview">
<img src="https://s24.postimg.org/r74b0vcu9/frame_0.gif" />
<img src="https://s24.postimg.org/a7vclm1mp/frame_15.gif" />
<img src="https://s24.postimg.org/600kcv075/frame_30.gif" />
<img src="https://s24.postimg.org/7t82exarl/frame_45.gif" />
<img src="https://s24.postimg.org/5d6912sox/frame_60.gif" />
</div>

【讨论】:

  • 编辑代码以立即触发悬停时的第一个更改,这可能是您想要的。
  • 投反对票的人是否愿意详细说明他的理由?这正是 OP 在他对问题的评论中所要求的:“当鼠标悬停时,div 图像应该替换,鼠标离开后它们应该停止。”
猜你喜欢
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
  • 2012-03-13
相关资源
最近更新 更多