前言
fancybox套件的功能是實現點開圖片,並可以放大顯示和左右切換圖片,還會隨版面的大小自動來調整跳出的版面範圍,而且手機端也可以直接實現。fancybox在Jquery中也有相關的套件,而Next主題自己在config有內建fancybox的配置,配製好以後就會在所有img標籤實作這功能,但如果有部分圖片不想要有放大顯示,則就需要做一些步驟。
安裝fancybox
我的版本的Next需要去把fnacybox clone下來,所以要先在next資料夾內執行下面的指令,就應該會在source/lib資料夾內出現fancybox資料夾
1  | git clone https://github.com/theme-next/theme-next-fancybox3 source/lib/fancybox  | 
接著在自己的next主題的_config.yml來將fancybox設為true,要注意不是在vendors底下的fancybox喔!!
1  | # FancyBox is a tool that offers a nice and elegant way to add zooming functionality for images.  | 
如果要在vendors配置則是如下
1  | vendors:  | 
鼠標顯示放大鏡icon
可以在next\source\css\_common\components\post中的這post.styl檔案裡面配製下面css語法
1  | .post-body img:hover {  | 
結果圖
可以點選放大
照片取消fancybox放大
有些照片不想給人放大的話,就要自己改一些語法,如先在img標籤內給定一個自己定義的nofancybox屬性
1  | <img src="https://i.imgur.com/W4RoWAe.jpg" class="nofancybox"/>  | 
接著在source\js裡面的utils.js中找出var $image = $(element);,在它的下面加入如下
1  | if ($(element).hasClass('nofancybox')){ //是否有包含自己定義的nofancybox屬性,有就return true  | 
加入後會呈現如下
1  | wrapImageWithFancyBox: function() {  | 
結果圖