以下是千篇一律的常规使用方法:
FancyBox提供了一种简洁优雅的方式去为图片、网页和多媒体添加灯箱功能。
特点
1、允许我们用鼠标和键盘上的四个方向键切换图片
2、可以根据当前窗口大小自动调整弹出框的大小,当我们改变浏览器窗口大小时,将会看到弹出框自动缩放了
3、支持缩略图和按钮帮助导航
4、弹出框支持显示多种类型的内容(图片,html,视频……)
如何使用
首先下载插件,解压然后复制文件到你的网站/项目文件夹中。在 中加载文件。确保你已经加载了 jQuery:
<head>
<script type="text/javascript" src="http://ajax.lug.ustc.edu.cn/ajax/libs/jquery/1.7/jquery.min.js"></script>
<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/jquery.fancybox.pack.js"></script>
</head>
创建你自己的链接,加上 fancybox 样式名,如果你想显示一个标题,那就给该链接加上一个 title 属性。
<a href="large_image.jpg" title="Sample title"><img src="small_image.jpg" /></a>
如果你有一组相关的图片,你得额外加上一个 rel(或 data-fancybox-group) 属性,给其赋一个组名:
<a href="large_1.jpg" rel="gallery" title="Sample title 1"><img src="small_1.jpg" /></a>
<a href="large_2.jpg" rel="gallery" title="Sample title 1"><img src="small_2.jpg" /></a>
用如下脚本初始化:
<script>
$(document).ready(function() {
$('.fancybox').fancybox();
});
</script>
你也可以给初始化脚本加上一些可选项来扩展默认的配置,比如:
<script>
$(document).ready(function() {
$('.fancybox').fancybox({
padding : 0,
openEffect : 'elastic'
});
});
</script>
提示: 自动分组然后将 fancyBox 应用到所有图片上:
$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox();
脚本用到了匹配的元素的 href 属性来取得内容的位置,以及找出你想要展示的内容类型。
你可以通过添加样式名(fancybox.image, fancybox.iframe, 等等)或者 data-fancybox-type 属性来直接指定类型:
//Ajax:
<a href="/example.html">Example</a>
//or
<a href="/example.html" data-fancybox-type="ajax">Example</a>
//Iframe:
<a href="example.html">Example</a>
//Inline (will display an element with `id="example"`)
<a href="#example">Example</a>
//SWF:
<a href="example.swf">Example</a>
//Image:
<a href="example.jpg">Example</a>
注意,ajax 请求会受到 同源策略 的影响。如果 fancyBox 不能获得内容类型,它将会根据 href 属性值来猜测,如果不成功就会静默退出(这和以前的版本是不一样的,如果猜测不成功就会展示一个错误信息)。
没错,我们今天说的是 如何让wordpress用上fancyBox灯箱功能
在wordpress文件头(如主题内的 header.php 文件)中引入下面三个文件(可以使用下面代码中的链接,或者直接下载后上传到所使用主题文件夹内按路径添加),注意:jquery-3.2.1.min.js建议也要引入的,有些主题jQuery库和这个有冲突,就会造成无法使用灯箱效果。
<script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.2.5/jquery.fancybox.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.2.5/jquery.fancybox.min.js"></script>
然后在主题的functions.php里写入:
/*
==================================================
fancybox图片灯箱效果
==================================================
*/
add_filter('the_content', 'fancybox1');
add_filter('the_content', 'fancybox2');
function fancybox1($content){
global $post;
$pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)>/i";
$replacement = '<a$1href=$2$3.$4$5 data-fancybox="images"><img$1src=$2$3.$4$5$6></a>';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
function fancybox2($content){
global $post;
$pattern = "/<a(.*?)href=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)>(.*?)<\/a>/i";
$replacement = '<a$1href=$2$3.$4$5 data-fancybox="images"$6>$7</a>';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
可以看见,上面代码中不带超链接的图片和带超链接的图片都能使用灯箱效果,如果你不需要不带超链接禁止灯箱效果,删除fancybox1相关内容即可。