Hugo博客添加图片放大效果 freecrazy 2021-12-30T21:12:34+08:00 795

hugo使用Fancybox添加图片放大效果

一、前因

代码截图太小,没有放大功能,看着不方便,遂加之。

二、查找之路

搜索一番发现一哥们文章说可以使用 Markdown Render HooksFancybox 搭配实现,跟着教程一顿操作下来,然并卵。

于是我继续查找,发现LightGallery也能实现,不过多数文章教程只有一句话略过 hugo主题已集成,这不写着耍猴呢,我的主题没有集成呀。

正在我想着去下载主题瞅瞅代码时,我退缩了,前端要折腾起来,那还真是至死也不休,我选择静心去研究刚开始的Fancybox。

三、安装

找到你的 head.html 或者 footer.html,在里面引入两行代码:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0.12/dist/fancybox.css">
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0.12/dist/fancybox.umd.js"></script>

官方文档说添加 data-fancybox="gallery" 属性就可实现,但是许多文章都把它添加在 a 标签中,a 标签再包裹 img 标签实现。

可能是这样做有什么好处吧,又或者那些文章都是从同一篇文中clone、clone、再clone出来的,反正我直接在img中添加就能完美实现。

四、实现

找了半天文件也没找见文章的图片在哪里渲染出来的,可能走的hugo内部渲染引擎或者其他。

于是换了个思路,不就是添加个属性嘛,用 js 获取对应图片添加不就完了?

又是一顿 js 或者 jquery 获取元素、添加属性的资料查找,最后仅此两行代码搞定。

// 获取文章中的img 标签  不包括封面
  $('.main img').not(".cover").each(function () {
    //添加 data-fancybox="gallery"
    $(this).attr("data-fancybox","gallery");
  })

ps:注意修改成你自己的文章img类。

五、前端小技巧

hugo虽说改动代码会自动渲染,但是对于css与js的改动,得益于浏览器的缓存,你并不能看到效果,两种办法解决:

  1. 使用 ctrl+F5 刷新
  2. 开发者工具网络一栏中将停用缓存打上勾

有时候觉得颜色或者样式不喜欢,可以在浏览器开发者工具中,慢慢磨出想要的效果,记住改的值,再去css中对应修改,毕竟开发者工具中效果都是实时可见的,无敌方便。

可能在前端者眼中一脸茫然,这不是基本操作吗?但是在萌新面前可能会抓狂很久乃至放弃(入门到放弃说的可能就是这种时刻吧),因此有必要分享出来。

六、总结

本篇废话较多,干货只有四行代码。

收工!

© 2021 - 2024 闲余悟道

载入运行时间...

avatar
关于我

癫狂乐天,狂放不羁,叛世逆俗,天纯不可一世。

跑酷

游戏玩腻,自个寻的,只喜纯跑,不喜炫技

滑板

身处异乡,未找到跑酷伙伴,转投滑板,oli练到死

骑行

通勤会的,通着通着成了爱好,不攀里数,不懂车构,菜腿一枚

爬山

老妈生错了生肖,喜欢在台阶或石头上蹦跶

设计

大学学的,PS效率实用流

代码

培训得的,已弃坑,得益于此,软件玩得起飞,如本博客内容

剪辑

无聊学的,人生苦短,想学的太多,学会罢了,我应该会了了吧……

写作

读书多了自然而然就……he,tui,人人都会,正在精进中

独自环过岛

海南岛,9天骑行,一人一包一帐篷,事故故事一堆堆

只身入过藏

心之所向,21点的太阳妙不可言

万里路

不少,如……

万卷书

微多,如……


人生苦短,繁华三千,可纵情声色,亦可摇桨泛舟。

碎年流光,若都平淡如水,岂非虚度一遭。

波澜不惊的一生虽不可恨,但数载光阴就历尽沧桑的生活应该更畅快。

别试图在文章末尾评论处留言,那只是摆设,不过若是打赏,我定会收到心意。联系方式本页社交链接中有猫腻。

清心决

心若冰清,天塌不惊。

万变犹定,神怡气静。

尘垢不沾,俗相不染。

虚空甯宓,浑然无物。

无有相生,难易相成。

份与物忘,同乎混涅。

天地无涯,万物齐一。

飞花落叶,虚怀若谷。

千般烦忧,才下心头。

即展眉头,灵台清幽。

心无挂碍,意无所执。

解心释神,莫然无魂。

水流心不惊,云在意俱迟。

一心不赘物,古今自逍遥。

自由转载-非商用-转载注明出处即可。