本文实例为大家分享了canvas实现图像放大镜的具体代码,供大家参考,具体内容如下
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>canvas-放大镜</title> <style> body{ padding: 0px; margin: 0px; } #canvas{ border: 1px solid red; margin: 100px; } </style> </head> <body> <canvas id="canvas" width="800px" height="500px"> </canvas> <script> //获取到canvas元素 var canvas = document.getElementById('canvas'); //获取canvas中的画图环境 var context = canvas.getContext('2d'); var img = new Image(); img.src = "./image/liuyifei.jpg"; window.onload = function(){ //获取放大镜 getfangdajing(context,canvas,img,150,2); } /* * context:绘制环境对象, * element:canvas元素对象 * img:图片对象 * diameter:放大镜的大小, * ratio:图形的放大比例, * (比例 = 原图 :镜中图像)0<ratio<1缩小图像,ratio>1放大图像 * */ function getfangdajing(context,element,img,diameter,ratio){ //绘制图片 context.drawImage(img,0,0,element.width,element.height); //鼠标在element中移动触发事件 element.onmousemove = function (e){ context.clearRect(0,0,element.width,element.height); //绘制图片 context.drawImage(img,0,0,element.width,element.height); //解决浏览器兼容问题 var e = e "-------"+event.clientY); //获取元素的坐标属性 var box = element.getBoundingClientRect(); var bx = x - box.left; var by = y - box.top; return {x:bx,y:by}; } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。