站长资源网络编程

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

整理:jimmy2026/9/15浏览2
简介本文实例讲述了JavaScript+HTML5 canvas实现放大镜效果。分享给大家供大家参考,具体如下:效果:www.jb51.net canvas放大镜</</div> <div class="news_infos"><div id="MyContent"><p>本文实例讲述了JavaScript+HTML5 canvas实现放大镜效果。分享给大家供大家参考,具体如下:</p> <p>效果:</p> <p><a href="javascript:;" onclick="showimg('/UploadFiles/2021-04-02/201951595648621.gif');"><img src="/UploadFiles/2021-04-02/201951595648621.gif" alt="JavaScript+HTML5 canvas实现放大镜效果完整示例" onmousewheel="return bbimg(this)" onload="javascript:resizepic(this)" border="0"/></a></p> <div class="htmlcode"> <pre class="brush:js;"> <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net canvas放大镜</title> <style> #copycanvas { border: 1px solid #000; display: none; } #square { width: 90px; height: 90px; background-color: #cc3; border: 1px solid #f00; opacity: 0.5; position: absolute; z-index: 999; display: none; cursor: crosshair; } </style> </head> <body> <canvas id="canvas" width="450" height="676"></canvas> <canvas id="copycanvas" width="300" height="300"></canvas> <div id="square"></div> <script> var canvas = document.getElementById('canvas'), //获取canvas对象 context = canvas.getContext('2d'), //获取上下文 copycanvas = document.getElementById('copycanvas'), //获取copycanvas copycontext = copycanvas.getContext('2d'), square = document.getElementById('square'), //获取透明框 squaredata = {}, //用来保存选择框数据 box = canvas.getBoundingClientRect(); //getBoundingClientRect方法可以获取元素上、下、左、右分别相对浏览器的坐标位置 //创建图像对象,并加载 image = new Image(); image.src = "3.jpg"; image.onload = function(){ context.drawImage(image,0,0,canvas.width,canvas.height); }; canvas.onmouseover = function(e){ var x = e.clientX, //获取鼠标实时坐标 y = e.clientY; createSquare(x,y); //保存透明选择框属性 }; window.onmousemove = function(e){ var x = e.clientX, y = e.clientY; //判断鼠标是否移出canvas if(x >= canvas.offsetLeft && x <= canvas.offsetLeft + canvas.width && y >= canvas.offsetTop && y <= canvas.offsetTop + canvas.height){ createSquare(x,y); }else{ hideSquare(); hideCanvas(); } } function showSquare(){ square.style.display = 'block'; } function hideSquare(){ square.style.display = 'none'; } function showCanvas(){ copycanvas.style.display = "inline"; } function hideCanvas(){ copycanvas.style.display = "none"; } function createSquare(x,y){ //控制选择框不移动出canvas x = x - 45 < canvas.offsetLeft "px"; square.style.top = y + "px"; showCanvas(); showSquare(); copy(); } function copy(){ copycontext.drawImage( canvas, squaredata.left - box.left, squaredata.top - box.top, 90, 90, 0, 0, copycanvas.width, copycanvas.height ); } </script> </body> </html> </pre> </div> <p>感兴趣的朋友可使用<strong>在线HTML/CSS/JavaScript代码运行工具</strong>:http://tools.jb51.net/code/HtmlJsRun测试一下运行效果。</p> <p>更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript图片操作技巧大全》、《JavaScript运动效果与技巧汇总》、《JavaScript+HTML5特效与技巧汇总》、《JavaScript图形绘制技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》</p> <p>希望本文所述对大家JavaScript程序设计有所帮助。</p></div> </div> </div> <div class="share"> </div> <div class="nextinfo"> <p>上一篇:<a href="/3g/1/86196.html" title="vue两组件间值传递 $router.push实现方法">vue两组件间值传递 $router.push实现方法</a></p> <p>下一篇:<a href="/3g/1/86198.html" title="详解微信UnionID作用">详解微信UnionID作用</a></p> </div> <div class="otherlink"> <h2>最新资源</h2> <ul> <li><a href="/3g/1/623703.html" title="群星《奔赴!万人现场 第2期》[FLAC/分轨]">群星《奔赴!万人现场 第2期》[FLAC/分轨]</a></li> <li><a href="/3g/1/623702.html" title="群星《奇妙浪一夏 (上海迪士尼度假区音乐">群星《奇妙浪一夏 (上海迪士尼度假区音乐</a></li> <li><a href="/3g/1/623701.html" title="群星《奇妙浪一夏 (上海迪士尼度假区音乐">群星《奇妙浪一夏 (上海迪士尼度假区音乐</a></li> <li><a href="/3g/1/623700.html" title="【古典音乐】詹姆斯·高威《季节》1993[WA">【古典音乐】詹姆斯·高威《季节》1993[WA</a></li> <li><a href="/3g/1/623699.html" title="贝拉芳蒂《卡里普索之王》SACD[WAV+CUE]">贝拉芳蒂《卡里普索之王》SACD[WAV+CUE]</a></li> <li><a href="/3g/1/623698.html" title="小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE">小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE</a></li> <li><a href="/3g/1/623697.html" title="群星《欢迎来到我身边 电影原声专辑》[32">群星《欢迎来到我身边 电影原声专辑》[32</a></li> <li><a href="/3g/1/623696.html" title="群星《欢迎来到我身边 电影原声专辑》[FL">群星《欢迎来到我身边 电影原声专辑》[FL</a></li> <li><a href="/3g/1/623695.html" title="雷婷《梦里蓝天HQⅡ》 2023头版限量编号低">雷婷《梦里蓝天HQⅡ》 2023头版限量编号低</a></li> <li><a href="/3g/1/623694.html" title="群星《2024好听新歌42》AI调整音效【WAV分">群星《2024好听新歌42》AI调整音效【WAV分</a></li> </ul> </div> </div> <div class="sidebar"> <div class="cloud"><h2 class="hometitle">一句话新闻</h2><a href="/3G/1/604623.html"><ul>一文看懂荣耀MagicBook Pro 16<br><br>荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.<br>人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。<br>众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?</ul></a></div> </div> <div class="sidebar"> 友情链接:<a href="http://www.imxmx.com/" title="杰晶网络" target="_blank">杰晶网络</a> <a href="/" title="DDR爱好者之家" target="_blank">DDR爱好者之家</a> <a href="http://www.nqxw.com/" title="南强小屋" target="_blank">南强小屋</a> <a href="http://www.paidiu.com/" title="黑松山资源网" target="_blank">黑松山资源网</a> <a href="http://www.dyhadc.com/" title="白云城资源网" target="_blank">白云城资源网</a> <a href="/sitemap1.xml">站点地图</a> <a href="/sitemap.xml">SiteMap</a> </div> </article> <footer> <p>Design by <a href="http://m.ddrfans.com">DDR爱好者之家</a> <a href="http://m.ddrfans.com">http://m.ddrfans.com</a></p> </footer> <script src="/images3g/nav.js"></script> <script type="text/javascript"> jQuery.noConflict(); jQuery(function() { var elm = jQuery('#left_flow2'); var startPos = jQuery(elm).offset().top; jQuery.event.add(window, "scroll", function() { var p = jQuery(window).scrollTop(); jQuery(elm).css('position', ((p) > startPos) ? 'fixed' : ''); jQuery(elm).css('top', ((p) > startPos) ? '0' : ''); }); }); </script> </body> </html>