使用JavaScript实现简单图像放大镜效果

目录
  • 项目基本结构
  • 第 1 步:图像放大镜的基本结构
  • 第 2 步:将图像添加到放大镜
  • 第 3 步:CSS设计放大镜
  • 第 4 步:使用 JavaScript 激活图像放大镜
  • 完整源码下载

图像放大镜在很多网站中都扮演着重要的角色,大多数开发人员使用 jquery 来创建图像放大镜。在本教程中,我将向大家展示如何使用 HTML、CSS 和 JavaScript 制作一个简单的图像放大镜。

在线演示地址

项目基本结构

目录结构如下:

第 1 步:图像放大镜的基本结构

使用以下 HTML 和 CSS 代码,首先在网页上为此图像放大镜 HTML创建了一个框。您可以在此框中看到图像。这里框的宽度:650px,高度:400 像素已经用过。它被一个 5px 的边框包围。

<div class="container">

</div>
body,
html {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  min-width: 700px;
  background: rgb(202, 201, 201);
}
.container {
  width: 650px;
  height: 400px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 5px solid rgb(244, 254, 255);
}

第 2 步:将图像添加到放大镜

现在,一个图像已添加到这个简单的图像放大镜项目中。在这里,您可以使用您选择的图像。

<div id="zoom">
  <img src="https://img-blog.csdnimg.cn/c43ca410ce4a40e4836664f7dbe98ad5.png" alt="">
</div>
#zoom img{
  width: 650px;
  height: 400px;
}

第 3 步:CSS设计放大镜

现在已经创建了放大镜玻璃,可以在其中通过缩放看到图像。我将通过 JavaScript 添加这个元素。现在我只是在设计。

#lens {
  position: absolute;
  border: 2px solid grey;
  border-radius: 50%;
  overflow: hidden;
  cursor: none;
  box-shadow: inset 0 0 10px 2px grey;
  filter: drop-shadow(0 0 2px grey);
}

#lens > * {
  cursor: none;
}

第 4 步:使用 JavaScript 激活图像放大镜

这个CSS 图像放大镜需要一些 JavaScript 才能工作。没有使用 jQuery 或外部库。因此,如果您了解基本的 JavaScript,您就可以构建它。

//lensSize => 宽度和高度
const lensSize = 200;

function magnify(id, zoom){
  const el = document.getElementById(id);
//cloneNode() 方法创建一个节点的副本,并返回克隆
  const copy = el.cloneNode(true);
//createElement() 方法创建由 tagName 指定的 HTML 元素
  const lens = document.createElement("div");

//setAttribute() 设置指定元素的属性值
  lens.setAttribute("id","lens")
  lens.style.width = lensSize + "px";
  lens.style.height = lensSize + "px";

//appendChild() 方法用于插入一个新节点
  el.appendChild(lens);
//getBoundingClientRect() 方法返回元素的大小及其位置
  el.getBoundingClientRect();
  copy.style.zoom = zoom;
  lens.appendChild(copy);

  copy.style.width = (el.offsetWidth * zoom) + "px";
  copy.style.heigth = (el.offsetHeight * zoom) + "px";
  copy.style.position = "absolute";

//当指针在元素上移动时执行 MouseMove
  el.addEventListener("mousemove", (ev) => {
//preventDefault() 方法停止选定元素的默认操作
    ev.preventDefault();
    ev.stopPropagation();
    const pos = getCursorPos(ev);
    lens.style.left =  - (lensSize/2) + pos.x + "px";
    lens.style.top = - (lensSize/2) + pos.y + "px";
    copy.style.left = - (pos.x - el.offsetLeft) + (lensSize/zoom)*0.5 + "px";
    copy.style.top = - (pos.y - el.offsetTop) + (lensSize/zoom)*0.5  + "px";
  })
}

  function getCursorPos(e) {
    var x = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    var y = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    return {x : x , y : y};
  }
//放大值
magnify("zoom", 4)

JavaScript 图像放大镜在很多网站中都扮演着非常重要的角色。如果你需要放大项目中的任何图像,则可以使用这种 javascript 类型的图像放大镜 。

完整源码下载

GitHub 地址:https://github.com/wanghao221/moyu/tree/main/工具-21.图片放大镜

以上就是使用JavaScript实现简单图像放大镜效果的详细内容,更多关于JavaScript图像放大镜的资料请关注我们其它相关文章!

(0)

相关推荐

  • JS版图片放大镜效果

    本文实例为大家分享了JS实现图片放大镜效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{ padding:0; margin:0; } .box{ position: relative; width:350px; h

  • JavaScript图像放大镜效果实现方法详解

    1. 基本四瓣花型图案 根据四瓣花卉线的参数方程: t= r*(1+sin(12*θ)/5)*(0.5+sin(4*θ)/2); x=t*cos(θ)); y=t*sin(θ)); 编写如下的HTML文件. <!DOCTYPE html> <head> <title>基本的四瓣花型图案</title> <script type="text/javascript"> function draw(id) { var canvas

  • javascript实现商品图片放大镜

    优化原因 现在的电商商城项目解决的主要是购买商品的问题,那么购买商品主要要看清楚商品表面外形的主要特征和细节,如果图片处理过小,或者细节过于模糊,就需要做一个商品高清图片放大局部的功能. 技术关键点 1.左侧和上侧距离,在一个水平位置和垂直位置中有我们可以挪动的区域,就是原图片区域,鼠标挪动位置是一个块状位置,他的左侧和上侧距离浏览器上侧和左侧分别有一个长度,我们叫它们 ClientX 和 ClientY,而左上侧鼠标没有略过的位置实际上是一个点,我们拖动放大块时,它会由一个点变成一个方块,这个

  • js图片放大镜实例讲解(必看篇)

    1.图片放大镜的思路: 当打开页面时只有图片 首先,说一下基本效果和调理,图片放大镜,也就是当你鼠标移入当前的商品图片时,会出现一个小灰色的观察移动框,有点会出现一个对应部位的放大的图片. 然后当鼠标移动时,右边的放大镜会出现对应部位的放大图片 最后当鼠标移开后,小的观察框和放大的图片都会消失. 2.有了基本思路就看代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti

  • JavaScript实现图片放大镜效果

    本文实例为大家分享了js实现图片放大镜效果的具体代码,供大家参考,具体内容如下 1.结构布局HTML代码 <div class="leftcon" id="left"> <img src="~/Content/images/风景-1.jpg" /> <div class="slide_box" id="box"></div> </div> <

  • 使用JavaScript实现简单图像放大镜效果

    目录 项目基本结构 第 1 步:图像放大镜的基本结构 第 2 步:将图像添加到放大镜 第 3 步:CSS设计放大镜 第 4 步:使用 JavaScript 激活图像放大镜 完整源码下载 图像放大镜在很多网站中都扮演着重要的角色,大多数开发人员使用 jquery 来创建图像放大镜.在本教程中,我将向大家展示如何使用 HTML.CSS 和 JavaScript 制作一个简单的图像放大镜. 在线演示地址 项目基本结构 目录结构如下: 第 1 步:图像放大镜的基本结构 使用以下 HTML 和 CSS 代

  • JavaScript+HTML5 canvas实现放大镜效果完整示例

    本文实例讲述了JavaScript+HTML5 canvas实现放大镜效果.分享给大家供大家参考,具体如下: 效果: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net canvas放大镜</title> <style> #copycanvas { border: 1px

  • JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】

    本文实例讲述了JavaScript实现多张图片放大镜效果.分享给大家供大家参考,具体如下: 效果如下:可以展示图片列表的放大镜效果,图片尺寸没有要求会自动调整至水平垂直居中效果 代码如下,除了图片要替换一下,其它的可直接运行查看效果,enlarge是图片要放大查看的倍数,注意:.bigBox的宽高与.tool的宽高比值要与enlarge保持一致,比如本例中这个比值是4 <!doctype html> <html> <head> <meta charset=&quo

  • javascript实现电商放大镜效果

    本文实例为大家分享了javascript实现电商放大镜效果的具体代码,供大家参考,具体内容如下 学习内容: 1.event.pageX 属性返回鼠标指针的位置,相对于文档的左边缘. 2.clientX 事件属性返回当事件被触发时鼠标指针相对于浏览器页面(或客户区)的水平坐标. 3.onmouseenter鼠标移入 4.onmouseleave鼠标移出 案例完整代码.html+css3+javascript 案例需求:鼠标点击左边图片时(鼠标呈十字架),遮罩层显示,右边盒子显示.且鼠标移动中心在遮

  • JavaScript实现简单拖拽效果

    本文实例为大家分享了JavaScript实现简单拖拽效果的具体代码,供大家参考,具体内容如下 先看实现的效果: 思路:里面用到了三个事件,鼠标按下.移动.松开事件 那么首先创建盒子并且给它赋予css样式 HTML: // html <div> <p>我是个蓝色的盒子</p> </div> CSS: CSS *{margin: 0;padding: 0;} div{ width: 100px; height: 100px; background-color:

  • JavaScript仿淘宝放大镜效果

    本文实例为大家分享了JavaScript实现淘宝放大镜效果的具体代码,供大家参考,具体内容如下 html代码 <div class="thumbnail"> <img src="./img/12-1Z930152149 (2).jpg" alt=""> <div class="magnifier"></div> </div> <div class="o

  • 利用JavaScript实现仿京东放大镜效果

    功能实现 1.鼠标经过小图片盒子,黄色的遮挡层和大图片显示,离开时就隐藏2个盒子功能 2.黄色遮挡层跟着鼠标走 把鼠标的坐标给盒子,不断地进行赋值操作 把鼠标地坐标给遮挡层不合适,因为遮挡层坐标以父盒子为准 首先是获得鼠标在盒子内地坐标 然后把数值给遮挡层地left和top值 此时用到鼠标移动事件,但是还是在小图片盒子内移动 发现,遮挡层位置不对,需要再减去盒子自身高度和宽度地一半 遮挡层不能超出小图片盒子范围 如果小于0,就把坐标设置为0 如果大于遮挡层最大地移动距离,就把坐标设置为最大地移动

  • JavaScript实现简单贪吃蛇效果

    本文实例为大家分享了js实现简单贪吃蛇效果的具体代码,供大家参考,具体内容如下 上代码之前,先给大家看一下效果: 是不是想说:我能这样玩一天- 话不多说,代码如下: <script> class Map{ constructor(){ // 提前设定将来的地图的样式数据 this.w = 450; this.h = 250; this.c = "#DDD"; // 执行创建地图方法 this.createEle(); } createEle(){ this.mapEle =

  • js实现简单的放大镜效果

    本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下 效果 效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子盖住的部分,在显示区显示 效果图如下: 核心思路 1.鼠标放置在图片上,显示区出现,鼠标离开小盒子,显示区消失 2.鼠标在图片上移动时,小盒子跟随鼠标移动,且鼠标在黄色小盒子中间位置 3.小盒子给判断,让其不能超出图片区域 4.小盒在图片上移动多少,显示区域要移动同比例的距离 5.当显示区大小发生改变,或显示区内容增大变小,原来图片上的黄色小盒子随之改变

随机推荐