WordPress主题集成FancyBox图片灯箱

WordPress主题集成FancyBox图片灯箱,第1张

概述FancyBox是一款基于jquery开发的类Lightbox插件。支持对放大的图片添加阴影效果,将fancybox图片灯箱效果集成到wordpress主题

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。

fancybox 是一款基于 jquery 开发的类 lightBox 插件。支持对放大的图片添加阴影效果,对于一组相关的图片添加导航 *** 作按纽,该 lightBox 除了能够展示图片之外,还可以展示 iframed 内容,通过 CSS 自定义外观。原先黑糖主题里是带有这个灯箱的,只不过显示的效果过于简单,从悟空博客分享的文章里,重新折腾了一下,如今图片的显示效果还是挺好看。

fancybox 特点:

1、允许我们用鼠标滚轮 或者 键盘上的四个方向键切换图片。

2、可以根据当前窗口大小自动调整d出框的大小,当我们改变浏览器窗口大小时,将会看到d出框自动缩放了。

3、支持缩略图和按钮帮助导航。

4、d出框支持显示多种类型的内容(图片,HTML,视频……)。

5、灯箱中按 ‘F’ 键快捷切换查看原图。

下载 fancybox

下载后解压,得到 CSS,img,Js 三个文件夹,将这三个文件夹上传至主题根目录。本站提供的下载文件:fancybox

引入下载

引入下载的 Js、CSS 文件,本站用的是开发的主题,所以在 functions.PHP 里找到加载 CSS 的函数块,加入

if (cs_get_option('i_function_fancybox_switcher') && !is_home()) {

wp_enqueue_style('fancyboxCSS',get_template_directory_uri().'/fancybox/CSS/fancybox.CSS',array(),'2.1.7','all');

wp_enqueue_script('fancyboxJs',get_template_directory_uri().'/fancybox/Js/jquery.fancybox.pack.Js',true);

}

Js 代码

在主题 main.Js 中添加以下代码创建灯箱实例,并设置相关效果等,为了能让之前的文章图片也有灯箱效果,加入了文章图片添加 fancybox-buttons 的样式。

//灯箱效果

if (fancyboxSwitcher && !isHomePage) {

var siteTitle = $("Title").HTML();

$(".article-body img").each(function () {

var alt = this.alt;

var src = this.src;

if (!alt) {

$(this).attr("alt",siteTitle);

}

$(this).wrap("<a href='"+ src +"' class='fancybox-buttons' data-fancybox-group='button' Title='"+ alt +"'></a>");

});

 

$('.fancybox-buttons').fancybox({

openEffect : 'elastic',

closeEffect : 'elastic',

prevEffect : 'elastic',

nextEffect : 'elastic',

closeBtn : false,

helpers : {

Title : {

type : 'insIDe'

},

buttons : {}

},

afterLoad : function() {

this.Title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.Title ? ' - ' + this.Title : '');

}

});

}

添加函数

在主题的 functions.PHP 中添加一个自定义函数,重写文章中图片链接 a 标签的 class 属性,其实不用这一段也可以,因为上面已经添加了触发灯箱的重写,问题是如果你发的文章含有分页内容,并且是 AJAX 加载的话,还是要加上这一段才行,在发分页文章时,图片要选链接到媒体。

//自动添加标签属性(fancybox图片灯箱),发布含分页文章时,图片要选链接到媒体

add_filter('the_content','fancybox_replace',99);

function fancybox_replace ($content)

{ global $post;

$pattern = "/<a(.*?)href=('|")([^>]*).(bmp|gif|jpeg|jpg|png)('|")(.*?)>(.*?)</a>/i";

$replacement = '<a$1href=$2$3.$4$5 data-fancybox-group="button" $6>$7</a>';

$content = preg_replace($pattern,$replacement,$content);

return $content;

}

显示效果

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的WordPress主题集成FancyBox图片灯箱全部内容,希望文章能够帮你解决WordPress主题集成FancyBox图片灯箱所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/1009631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存