616 字
3 分钟
博客篇:TwiKoo实现评论图片点击放大 🖼️✨

博客篇:TwiKoo实现评论图片点击放大 🖼️✨#

前言 💬#

之前博客写过一篇配置文章,里面有讲解如何集成TwiKoo评论系统。

Astro/fuwai博客配置教程

不过TwiKoo默认是不支持图片点击放大的,但是fuwari主题默认是支持图片点击放大的。

那么这就非常好实现了💡,也不需要引入其他的插件了🙌。

开始实现 🛠️#

修改配置文件 ⚙️#

通过阅读代码发现fuwari主题是用的PhotoSwipe插件实现的图片点击放大🔍。

具体代码在src/layouts/Layout.astro文件中配置:

function createPhotoSwipe() {
lightbox = new PhotoSwipeLightbox({
gallery: ".custom-md img, #post-cover img, .tk-content img",
...
)}
}

首先需要在gallery中添加TwiKoo评论区域img标签图片所在的父元素ID或者class属性。

我这里就直接在原本基础上加上了:.tk-content img 🧩。

但是由于我们的评论组件是 动态加载 的⚡,所以想让图片点击生效还需要添加一行代码,将createPhotoSwipe方法绑定到window对象上。

function createPhotoSwipe() {
lightbox = new PhotoSwipeLightbox({
gallery: ".custom-md img, #post-cover img, .tk-content img",
...
)}
}
(window as any).createPhotoSwipe = createPhotoSwipe;
...

修改评论组件 💻#

虽然实现了点击放大🖱️,但是鼠标移入图片的时候,鼠标应该变为放大镜🔎,所以还需要修改评论组件,添加样式。

需要在script代码里面动态添加上样式代码🎨:

// 动态创建样式并添加到页面
const style = document.createElement('style');
style.textContent = `
.tk-content img {
cursor: zoom-in;
transition: opacity 0.2s ease;
}
.tk-content img:hover {
opacity: 0.9;
}
`;
document.head.appendChild(style);
console.log("动态样式已添加到页面");

然后在评论组件init方法中的onCommentLoaded事件中调用刚刚为window对象绑定的方法⚙️。

twikoo.init({
envId: commentConfig.twikoo.envId,
el: '#tcomment',
region: commentConfig.twikoo.region,
path: location.pathname,
lang: commentConfig.twikoo.lang,
onCommentLoaded: function() {
console.log('Twikoo comments loaded successfully');
if (window.createPhotoSwipe){
window.createPhotoSwipe();
}
}
});

这样就完成了评论组件里面图片的点击放大功能 🎉。

效果展示 👀#

img

2


总结 📝#

对于fuwari主题的博客,在集成twikoo后, 想在评论区实现图片点击放大,只需要修改Layout.astro文件和评论组件就行了💪。

当然这只是其中一种方式,还有很多方式可以实现评论区图片点击放大 🌈,有更多更好的实现方式可以在评论区留言~ 💬

参考链接 🔗#

博客篇:TwiKoo实现评论图片点击放大 🖼️✨
https://blog.pljzy.top/posts/博客篇twikoo实现评论图片点击放大/博客篇twikoo实现评论图片点击放大/
作者
ZyPlj
发布于
2025-10-23
许可协议
CC BY-NC-SA 4.0