65.9K
CodeProject 正在变化。 阅读更多。
Home

在 FancyBox 画廊中显示图片和视频

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2014年2月18日

CPOL

3分钟阅读

viewsIcon

43513

downloadIcon

10

本文档介绍了如何使用 Json 数据和现有的 HTML 标签作为数据,在同一个 Fancybox 画廊中显示图片和视频。

引言

本文解释了如何使用 Json 数据和现有的 html 标签作为数据,在同一个 Fancybox 画廊中显示图像和视频。最后,我将提出一种直接从 Json 数据生成 Fancybox 画廊的方法,而无需先在页面上布局链接元素。

背景

Fancybox 是一个 Jquery 库,可以帮助你以漂亮的方式显示图像、视频和其他 html 类型的内容。Fancybox Jquery 库将以弹出窗口或类似画廊的演示文稿的形式显示内容。它也可以用来呈现能够处理输入的对话框。你可以使用链接下载最新的构建版本并查看其一些演示。

使用代码 

在同一个 Fancybox 画廊中组合视频和图像的问题在互联网上引发了很多问题。这是一个示例,展示了如何使用链接标签作为数据源,在同一个画廊中显示 Youtube 剪辑和 JPG 图像。

将所有对 Jquery 和 Fancybox 的引用添加到页面上的 <head> 标签之后。我使用的是此处找到的 Jquery 2.0.3 版本,以及此处找到的 Fancybox 2.1.5 版本。请参阅 Fancybox 下载中的 Demo 文件夹中包含 Fancybox 引用的演示。我的看起来像这样

<script src="Scripts/jquery-2.0.3.min.js"></script>
<script src="Scripts/jquery.mousewheel.js"></script>
<script type="text/javascript" src="/js/fancybox/jquery.fancybox.js?v=2.1.5"></script>
<link rel="stylesheet" type="text/css" href="/js/fancybox/jquery.fancybox.css?v=2.1.5" media="screen" />
<script type="text/javascript" src="/js/fancybox/helpers/jquery.fancybox-media.js?v=1.0.6"></script>   

如你所见,我还从此处下载了 JQuery 鼠标滚轮插件,并将其添加到页面。 此插件将使你能够使用鼠标滚轮在画廊中的图像和视频之间导航。

以下是一些你可以放在网页上的 <body></body> 标签之间的链接

<a class="fancybox" data-fancybox-type="image" data-fancybox-group="group1" title="qwerty" href="your image file">Some text</a>
<a class="fancybox" data-fancybox-type="iframe" data-fancybox-group="group1" title="the video" href="a youtube video embed link ">Some text her to</a>

然后你需要使用 JQuery 拦截 on DOM ready 事件。这只是为了简单起见,并且将在页面完全加载后立即在屏幕上显示画廊;就像他们说的:当 DOM 准备好时 (文档对象模型)。以下代码可以放在 HTML 页面的 <head></head> 标签之间。

<script> 
$(document).ready(function () {
  $(".fancybox").fancybox({
    openEffect: 'none',
    closeEffect: 'none',
    nextEffect: 'none',
    prevEffect: 'none',
    padding: 0,
    margin: [20, 0, 20, 0]
  });
});
</script>

查看上面的 JavaScript 例程,你会看到该功能的这一部分

$(".fancybox")

这意味着:选择页面上所有具有类名 fancybox 的元素。 这是一个 Jquery 选择例程,与 Fancybox 无关。 接下来你会看到用粗体标记的

$(".fancybox").fancybox({

这意味着:在选定的元素上使用 Fancybox.. 或将 Fancybox 应用于选定的元素。 这将启动将你的 <a> 链接转换为画廊的例程。 但是,在此发生之前,Fancybox 例程需要读取一些选项设置,这些设置是该代码块的其余部分。 例程将检查链接并查找 data-fancybox-type 属性。 data-fancybox-type 属性指示该链接是图像还是视频 (iframe)。 这将使画廊在 <DIV> 标签中显示图像和在 <iframe> 标签中显示视频之间切换。

假设你已经插入了自己的一些链接,该页面现在应该在 Web 浏览器中打开。

对于不太胆小的人

看看本文顶部的提供的源代码。 它将向你展示如何将 Json 对象用作画廊的数据。 从代码中你可以看到,没有涉及任何 html 链接。 实际上,网页的 body 标签之间没有任何东西。 看,妈妈!没手! 这引发了这样的想法:我可以从数据库或 Web 服务获取链接数据吗? 是的,你可以,但那必须是我的下一篇文章。 附加的代码文件肯定会暗示如何使用 Fancybox 插件中的数据。 即将到来的下一篇文章应侧重于获取图像库数据的不同方式。

历史

2014 年 2 月 18 日:撰写了有关如何使用 Fancybox Jquery 插件的介绍性文本。

 
© . All rights reserved.