javascript - 如何制作可以悬停的画廊或视频或图像缩略图并显示更大的图像?

标签 javascript jquery html css image

我正在尝试创建这样的图片库。 https://angel.co/payward-kraken

要点: 1. 它有一个更大的图像,当我将鼠标悬停在缩略图上时,我想将其换成缩略图中的内容。 2.我想把第一个“大图”做成视频。 3. 我希望标题随着每次图像切换而改变。

我已经能够弄清楚如何制作一个缩略图列表,我可以将鼠标悬停在上面并更改更大的图像。我还问了一个先前的问题,并得到了关于如何进行视频交换的很好的答案。我遇到的问题是如何更改字幕以及如何让视频成为第一个出现的内容。

这就是我一直在努力的..

HTML 
<div id="imgDetail">
 <video  width="320" height="240" controls>
   <source src="http://theinfluence.co/assets/img/Traackr.mp4" type="video/mp4" />
</video>
<img src="http://theinfluence.co/assets/img/traackr2.png" id="bigImg" />
<ul>
    <li>
        <img src="http://theinfluence.co/assets/img/ebuzzing1.png" class="thumb" />
    </li>
    <li>
        <img src="http://theinfluence.co/assets/img/ebuzzing2.png"  class="thumb" />
    </li>
    <li>
        <img src="http://theinfluence.co/assets/img/ebuzzing3.png" class="thumb" />
   </li>
    <li ><img src="http://theinfluence.co/assets/img/ebuzzing4.png" class="thumb   video" /></li>
   <!--- Etc--->
  </ul>
</div>

CSS

#imgDetail video
{
  display:none;
 }

ul, ol {
 margin-bottom: 10px;
 margin-top: 0;
}

Javascript

$('#imgDetail li img').not(".video").hover(function(){
    $('#imgDetail video').hide();
    $('#bigImg').show();        
    $('#bigImg').attr('src',$(this).attr('src'));
});

$('#imgDetail li img.video').hover(function(){
    $('#bigImg').hide();
    $('#imgDetail video').show();        
});

http://jsfiddle.net/Xb25p/ .

任何帮助将不胜感激。

最佳答案

要完成标题的更改,您可以将标题存储为元素本身的 data 属性。例如,您可以这样做:

<img src="http://theinfluence.co/assets/img/ebuzzing1.png" class="thumb" data-caption="My caption here"/>

在 HTML5 中,数据属性充当“隐藏输入”字段,您可以在其中实际存储和访问数据,而无需用户查看。然后,您可以在悬停函数中使用 jQuery 的 .data() 方法访问标题,如下所示:

$('#imgDetail li img.video').hover(function(){
    var caption = $(this).data('caption');
    // Use your caption here
    $('#bigImg').hide();
    $('#imgDetail video').show();        
});

对于标题元素本身,我建议使用 HTML5 的内置功能,通过使用图形:

<figure id="myFigure">
    <img src='image.jpg' />
    <figcaption>Caption here</figcaption>
</figure>

如果这样做,您可以简单地通过以下 jQuery 更改标题:

$('#imgDetail li img.video').hover(function(){
    var caption = $(this).data('caption');
    $('#myFigure > figcaption').text(caption);        

    $('#bigImg').hide();
    $('#imgDetail video').show();        
});

要先制作视频,您真正需要做的就是启动隐藏的“bigImg”元素。您可以通过在其 CSS 规则中添加这一行来做到这一点:

#bigImg {
    display: none;
}

希望这对您有所帮助!

关于javascript - 如何制作可以悬停的画廊或视频或图像缩略图并显示更大的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21433494/

相关文章:

javascript - Node.js - 对象.getPrototypeOf

jquery - 如何在我的 Web 客户端上复制此 cookie 功能?

php - 使用 jQuery 更改图像 src。 (不适用于火狐浏览器)

javascript - 单击 li 中的图标时,如何确定它是否是 ul 中的第一个 li?

xml - SVG/XML : Remove unwanted XML/SVG www. w3.org/2000/svg 标签?

javascript - 运算符存储在字符串中时的数学运算

java - 使用 Java Servlet 保存 HTML5 <canvas> 图像

javascript - Three.js:在立方体的单个面上组合 Material (使用多种 Material )

javascript - 在光标处显示 div 并将 div 保持在可视区域内

html - Bootstrap,轮播标题内的图像没有响应