logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔5
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置基于Node的WIKI管理
前端知识16
HTML常用知识CSS常用知识CSS美化checkbox复选框JavaScript常用知识JavaScript格式化时间戳JavaScript窗口宽高处理JavaScript黑夜主题切换实现方案JavaScript数字转大写简易图片查看器TypeScript基础知识Threejs基础三要素Threejs网格辅助和轨道控制器Threejs物体绘制Electron基础使用Nodejs基础知识animate.css页面动画
Vue框架2
Vite的使用及扩展Vue3父子组件

实现的效果

CSS代码

/* 图片放大遮罩 */
.img-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.img-overlay img {
  max-width: 90vw;
  max-height: 90vh;
  transition: transform 0.1s;
}

JS代码

// 图片点击放大(滚轮缩放,点击任意位置关闭)
(function () {
  var overlay = null;
  var scale = 1;
  document.querySelectorAll("#content img").forEach(function (img) {
    img.addEventListener("click", function () {
      overlay = document.createElement("div");
      overlay.className = "img-overlay";
      var clone = img.cloneNode(true);
      clone.removeAttribute("width");
      clone.style.transform = "scale(1)";
      scale = 1;
      overlay.appendChild(clone);
      // 点击任意位置关闭
      overlay.addEventListener("click", function () {
        document.body.removeChild(overlay);
        overlay = null;
      });
      // 滚轮缩放
      overlay.addEventListener("wheel", function (e) {
        e.preventDefault();
        scale += e.deltaY < 0 ? 0.1 : -0.1;
        scale = Math.max(0.2, Math.min(5, scale));
        clone.style.transform = "scale(" + scale + ")";
      });
      document.body.appendChild(overlay);
    });
  });
})();
实现的效果
CSS代码
JS代码