jquery - 如何仅在图像悬停时显示 fancybox 标题

标签 jquery fancybox gallery modal-dialog

我正在使用Fancybox plugin对于图像库,我想仅当用户将鼠标悬停在图像上时显示图像标题。我不知道要修改代码的哪一部分才能完成此任务。

我尝试通过向以下内容添加 :hover 状态来编辑 CSS:

.fancybox-title-over-wrap {
}

我什至尝试过在这里使用 CSS 可见性设置:

.fancybox-opened .fancybox-title {
}

但是,我没有运气。

我必须更改实际 JS 文件中的某些内容吗?任何帮助将不胜感激!

最佳答案

你不需要搞乱原来的js或css文件。您只需创建自己的自定义脚本并应用一些 fancybox API 选项和方法即可实现此目的。

例如,有这个 html

<a class="fancyLink" href="images/01.jpg" title="lorem ipsum">open image</a>

您需要一个自定义脚本来触发 fancybox,例如:

<script type="text/javascript">
$(document).ready(function() {
 $(".fancyLink").fancybox();
}); // ready
</script>

现在,在上面的脚本中,尝试以下选项来实现您想要的 title 效果:

<script type="text/javascript">
$(document).ready(function() {
 $(".fancyLink").fancybox({
  helpers: {
   title : {
    type : 'over'
   }
  },
  afterShow : function() {
   $(".fancybox-title").hide();
   $(".fancybox-wrap").hover(function() {
     $(".fancybox-title").show();
    }, function() {
     $(".fancybox-title").hide();
   });
  }
 });
}); // ready
</script>

您甚至可以添加一些漂亮的动画来显示标题,例如

<script type="text/javascript">
$(document).ready(function() {
 $(".fancyLink").fancybox({
  helpers: {
   title : {
    type : 'over'
   }
  },
  afterShow : function() {
   $(".fancybox-title").hide();
   $(".fancybox-wrap").hover(function() {
     $(".fancybox-title").stop(true,true).slideDown(200);
    }, function() {
     $(".fancybox-title").stop(true,true).slideUp(200);
   });
  }
 });
}); // ready
</script>

注意:这是 fancybox v2.x

关于jquery - 如何仅在图像悬停时显示 fancybox 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123886/

相关文章:

ruby-on-rails - 如何显示 Fancybox 预加载图像

jquery - fancybox - 当 fancybox 聚焦时如何滚动页面

Android:在内置图库中显示图像

jquery - 使用 html2canvas 进行阿拉伯语编码

javascript - fancybox 防止在窗口外部关闭点击

javascript - jquery 超大 stop_loop 重定向?

android - 为什么 Gallery 如此缓慢/访问 GoogleLoginService?

javascript - 拍摄并显示图像

jquery - pjax 更改历史记录而不发出实际请求/使用 pjax 而不连接到服务器

javascript - 如何使用代码删除D3树 Node ?