首页 > 其他分享 >放大镜

放大镜

时间:2024-02-20 21:23:01浏览次数:13  
标签:function canvas drawImage 放大镜 style dx 绘制

事件

  • onmouseover 鼠标移动到某元素之上触发事件
  • onmousemove 鼠标在某元素之上移动时触发事件
  • onmouseout 鼠标从某元素之上移出时触发事件

dom对象

  • offsetLeft 返回元素水平偏移量(从上到下开始计算)
  • offsetTop 返回元素垂直偏移量(从左到右开始计算)

对选择框设置绝对布局

好像其他布局无法设置top left 修改位置一样?

//透明框是用div设置的,需要用获取该引用
square = document.getElementById('square'),
//getBoundingClientRect方法可以获取元素上、下、左、右分别相对浏览器的坐标位置
  box = canvas.getBoundingClientRect();

在js中创建图片对象

(image = new Image()), (image.src = 'fdj.jpeg');
image.onload = function () {
  //这里运用到了canvas的绘制图像方法
  context.drawImage(image, 0, 0, canvas.width, canvas.height);
};

设置隐藏和出现的方法

function showSquare() {
  square.style.display = 'block';
}

function hideSquare() {
  square.style.display = 'none';
}

function showCanvas() {//行
  copycanvas.style.display = 'inline';
}

function hideCanvas() {
  copycanvas.style.display = 'none';
}

img

function copy() {
  copycontext.drawImage(
    canvas, //这里绘制的源对象便是canvas
    squaredata.left - box.left,//squaredata为选择框,box为原图像
    squaredata.top - box.top,
    90,
    90,
    0,
    0,
    copycanvas.width,
    copycanvas.height
  );
}
  • drawImage(imagedata, dx, dy); 此方法会将整幅图像绘制到 canvas 的指定位置上,dxdy分别指目标 canvas 开始绘制点的 x , y 坐标,详情见解析图
  • drawImage(imagedata, dx, dy , dw, dh); 此套参数中新增的 2 个参数dw , dh分别代表绘制时指定的宽和高(也因此实现缩放的效果),详情见解析图。
  • drawImage(imagedata, sx, sy, sw, sh, dx, dy, dw, dh); 此套参数中又新增了 4 个参数sx, sy, sw, sh,分别代表被绘制图像开始绘制点的 x, y 坐标,以及被绘制部分的宽和高,详情见解析图。

标签:function,canvas,drawImage,放大镜,style,dx,绘制
From: https://www.cnblogs.com/xzemt/p/18024073

相关文章

  • jQuery实现放大镜效果
    jQuery实现放大镜效果 1.1.1摘要相信大家都见过或使用过放大镜效果,甚至实现过该效果,它一般应用于放大查看商品图片,一些电商网站(例如:凡客,京东商城,阿里巴巴等)都有类似的图片查看效果。在接下来的博文中,我们将向大家介绍通过jQuery实现放大镜效果。目录实现原理mousemove......
  • Vue3实现电商放大镜效果
    效果实现:功能拆解:左侧滑块跟随鼠标移动右则大图放大效果实现鼠标移入控制滑块和大图显示隐藏滑块跟随鼠标移动思路:获取到当前的鼠标在盒子内的相对位置(useMouseInElement),控制滑块跟随鼠标移动(left/top)获取鼠标相对位置控制滑块跟随移动有效移动范围内的计算逻辑......
  • 记录--js小练习(弹幕、 电梯导航、 倒计时、 随机点名、 购物放大镜)
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助DOM小练习弹幕电梯导航倒计时随机点名购物放大镜1.弹幕效果预览功能:输入弹幕内容,按下回车显示一条弹幕(弹幕颜色、字体随机生成)思路:设置按钮抬起事件,在事件中判断如果按下的是回车键则将输入框中替换掉......
  • 前端必学——实现电商图片放大镜效果(附代码)
    放大镜可以说是前端人必须学会的程序之一,今天的案例为大家展示一下怎么实现放大镜的效果!效果图展示  整个效果就是当鼠标放到展示图上的时候,会出现一个遮罩层以及弹出来一个框展示一个详情图,并且鼠标移动的时候详情图跟着移动,鼠标离开详情图消失。HTML代码:<html><head><style>#sm......
  • 图片放大镜
    <!DOCTYPEhtml><html><head><metaname="viewport"content="width=device-width,initial-scale=1.0"><style>*{box-sizing:border-box;}.img-magnifier-container{position:relative;}.img-magnifier-gla......
  • js详细讲解放大镜的实现
    实现放大镜的整体思路1.当鼠标放在图片上的时候,出现蒙层。2.出现蒙层,让鼠标在蒙层中心3.限制蒙层移动的范围4.放大镜移动最终实现的效果鼠标放上去的时候,出现一个蒙层。蒙层的移动范围只能在图片里,不能超出范围。移动蒙层时,右侧会出现图片的放大部分。移除图片的范围,......
  • [AHK2] 屏幕放大镜
    介绍此脚本源自远古的ahk1,里面甚至使用了IfLess这种语法。但不管怎么说,它是个十分好的脚本,代码精简,效率也好。所以我将它升级到了ahk2版,并对部分内容做提炼,疏通了整个脚本的脉络(老语法实在混乱)。它的作用就是可以放大鼠标下的屏幕,以gui的形式展示出来。效果如下:此外,还有以下......
  • js实现图片放大镜效果
    效果图代码实现过程html部分<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"><head......
  • 实现vue图片放大镜效果
    最近想要实现图片放大镜的效果,-首先使用的是原生js+css的方法:参考https://blog.csdn.net/sinat_34849421/article/details/106074482这个方法功能倒是可行,但是这个方式在跳出这个页面时会报 UncaughtTypeError:Cannotreadpropertiesofundefined(reading‘getBoundingCl......
  • vue - 图片的放大镜功能
    //html<divclass="productLeft"><!--左侧中图--><divclass="mdImg"><img:src="qall"alt=""></div><!--遮罩层--><divv-show="isShow"class=&qu......