HTML5学习记录-----canvas学习之鼠标选取放大图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了HTML5学习记录-----canvas学习之鼠标选取放大图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3177字,纯文字阅读大概需要5分钟。
内容图文

canvas鼠标选取放大 欢迎大家有好点建议可以提。js高级扣扣群:170798851 欢迎来交流学习
??? git项目地址:https://github.com/Jonavin/HTML5_Study
/** * Created by wsf on 2014-11-23. */ ;//分号为了保证代码合并时不出错 (function(win){ "use strict"; var doc = win.document,cvs = doc.querySelector("#canvas"), selector = doc.getElementById("selector"), restBtn = doc.getElementById("resetBtn"), ctx = cvs.getContext("2d"), img = new Image(),width = cvs.width,height = cvs.height,msdown = {},selectRect = {},dragging = false; var _functions = { //选取开始 selectStart : function(x,y) { msdown.x = x;//鼠标按下横坐标 msdown.y = y; selectRect.left = msdown.x; selectRect.top = msdown.y;// this.moveSelector();//移动选取框 this.showSelector();//显示选取框 dragging = true;// }, //移动选取框 moveSelector: function () { selector.style.top = selectRect.top + "px"; selector.style.left = selectRect.left + "px"; }, //显示选取框 showSelector:function(){ selector.style.display = "inline"; }, //展开选取框 selectorStretch:function(x,y){ selectRect.left = Math.min(x,msdown.x); selectRect.top = Math.min(y,msdown.y); selectRect.width = Math.abs(x - msdown.x); selectRect.height = Math.abs(y-msdown.y); this.moveSelector();//移动选取框 this.resizeSelector();//重设选取框 }, //重设选取框大小 resizeSelector:function(){ selector.style.width = selectRect.width + "px"; selector.style.height = selectRect.height + "px"; }, //重置选取框 resetSelector:function(){ selectRect = {top:0,left:0,width:0,height:0}; }, //选取结束 selectEnd:function(){ var _box = cvs.getBoundingClientRect(); try{ ctx.drawImage(cvs,selectRect.left-_box.left,selectRect.top-_box.top,selectRect.width,selectRect.height,0,0,width,height); }catch (e){ } this.resetSelector(); selector.style.width = 0; selector.style.height = 0; this.hideSelector(); dragging = false; }, hideSelector:function(){ selector.style.display = "none"; } } cvs.onmousedown = function(e){ var x = e.clientX,y = e.clientY; e.preventDefault();//阻止浏览器默认事件 _functions.selectStart.call(_functions,x,y); } win.onmousemove = function(e){ var x = e.clientX,y = e.clientY; e.preventDefault(); if(dragging){ _functions.selectorStretch.call(_functions,x,y); } } win.onmouseup = function(e){ e.preventDefault(); _functions.selectEnd.call(_functions); } img.onload = function(){ ctx.drawImage(img,0,0,width,height); } restBtn.onclick = function(e){ ctx.clearRect(0,0,width,height); ctx.drawImage(img,0,0,width,height); } img.src = "img.jpg"; })(window);
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>鼠标选取canvas区域</title> <style> body{ background: rgba(100,145,250,0.3); } #canvas{ margin-left: 20px; margin-bottom: 10px; margin-right: 0; border:thin solid #aaa; padding: 0; } #controls{ margin:20px 0 20px 20px; } #selector{ position: absolute; border:3px solid blue; cursor: crosshair; display: none; } </style> </head> <body> <div id="controls"> <input type="button" id="resetBtn" value="重置"/> </div> <div id="selector"></div> <canvas id="canvas" width="800" height="520"> 不支持canvas </canvas> <script src="mouseSelect.js"></script> </body> </html>
?
?
?
原文:http://javasam.iteye.com/blog/2159523
内容总结
以上是互联网集市为您收集整理的HTML5学习记录-----canvas学习之鼠标选取放大图像全部内容,希望文章能够帮你解决HTML5学习记录-----canvas学习之鼠标选取放大图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。