【NexT】NexT中的fancybox
摘要:
本文主要讲述在NexT中使用fancybox的时候的遇到问题及解决办法。
1.fancybox
介绍
fancybox
是一款基于jquery开发的类Lightbox插件,它可能是世界上最受欢迎的lightbox
脚本了。这个脚本它依赖于jquery
,其中jQuery 3+
是首选,但fancybox
也兼容jQuery 1.9.1+
和jQuery 2+
。
2.fancybox
基本使用
这里借用fancybox
官网首页的快速开始的例子,最基本的使用方式如下所示。
1 | <!-- 1. Add latest jQuery and fancybox files --> |
示例如下图所示(点击图片可以查看我的博客中fancybox的使用效果):
3.fancybox
在NexT
主题中的问题
- 首先,聊一聊整个问题是怎么发现及产生的
在NexT
中,已经加载了fancybox
的所需脚本,所以我们直接在主题配置文件中将其打开就可以了。
1 | # true表示打开fancybox,fasle为关闭fancybox |
但是在开启后,我们去放大图片,会发现是没有问题的,但是在关闭图片预览的时候,整个页面会向左抖动一下,具体原因是,fancybox
在开启图片预览后,是遮盖了原来的页面,相当于蒙上了一个黑色但是透明的页面,这个时候右侧原来的滚动条是被隐藏了,当关闭图片预览的时候,滚动条重新出现,导致整个页面有一个向左抖动的情况,那么怎么解决整个问题呢?
我们去fancybox
的github
仓库去看源码,会发现有这么一个参数hideScrollbar
,就是导致了放大图片的时候滚动条隐藏的原因,将其值设置为true
就可以使滚动条一直显示,这样就解决了整个抖动的问题。
- 其次。我们来解决
NexT
中的这个问题
新建一个脚本文件myfancybox.js
,并添加以下代码:
1 | $.fancybox.defaults.hideScrollbar = false; // 使右侧滚动条一直显示 |
在[blogRoot]/themes/next/layout/_layout.njk
文件的<body></body>
中引用该文件即可
1 | # theme.fancybox_param为上边新建myfancybox.js脚本的路径 |
然后再 hexo cl && hexo g && hexo s
就可以发现抖动的问题解决了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 云与海!
评论
WalineTwikoo