Hexo文章中图片点击实现全屏查看

具体效果请查看:https://blog.enjoytoshare.club/article/hexo-do-picture-screen.html

写在前面

方法一存在图片放大后不美观,建议直接跳到方法二
如果想尝试解决第一种方法出现的Bug,可以尝试一下,然后我们讨论一下,方便的话可以加我QQ:2422676183

方法一

修改post-details.js文件

文件目录:/themes/next/source/js/src/post-details.js
在文件最后添加:

//----自定义js----------------
function createImgEventFullScreen() {
  var imgs = $(".post-body").find("img");
  console.log(imgs);
  for(var i = 0;i < imgs.length;i++) {
    // $(imgs[i]).click(createCover(imgs[i]));
    imgs[i].onclick= function(e) {
      var src = e.srcElement.currentSrc;
      createCover(src)
    }
  }
  function createCover (src) {
    console.log(src);
    var cover = $("<div id='fullScreenCover' class='zhao-cover-img-container'><img class='zhao-cover-img' src='"+src+"'/></div>");
    $("#fullScreenCover").remove();
    $("body").append(cover);
    $("body").addClass("zhao-no-scroll");
    $("#fullScreenCover").click(function(){
      $("#fullScreenCover").remove();
      $("body").removeClass("zhao-no-scroll");
    })
  }
}
setTimeout(function(){
  createImgEventFullScreen();
},1000)

修改custom.styl文件

文件目录:/themes/next/source/css/_custom/custom.styl
在文件最后添加:

.zhao-cover-img-container{
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100vh;
 z-index: 10002;
 text-align: center;
 background-color: #000;
 overflow-y: scroll;
}
.zhao-cover-img{
 width: 100%;
 position: absolute;
 top: 0;
 bottom: 0;
}
.zhao-no-scroll{
 width: 100%;
 height: 100vh;
 overflow: hidden;
}

不过还是会存在一个小bug,大图片图片放大时有点不美观
如果您知道如何解决可以给我留言,谢谢啦

方法二

这种方法使用了图片浏览放大功能fancybox插件

切换到lib目录

cd next/source/lib

下载插件

git clone https://github.com/theme-next/theme-next-fancybox3 fancybox

Hexo文章中图片点击实现全屏查看

更改主题配置文件

更改next/_config.yml文件

fancybox: true

测试效果

部署hexo s之后点击图片,如图:

Hexo文章中图片点击实现全屏查看

完美,这种效果我很满意,你觉得呢,还是大神优秀啊~~ 好好学习!