<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
body{
background: rgba(100,145,250,.3);
}
#canvas{
margin: 0 0 20px 20px;
border: thin solid #aaa;
cursor: crosshair;
padding: 0;
}
#controls{
margin: 20px 20px 20px 20px;
}
#rubberbandDiv{
position: absolute;
border: 3px solid blue;
cursor: crosshair;
display: none;
}
</style>
</head>
<body>
<div class="" id="controls">
<input type="button" name="" id="resetButton" value="Reset" />
</div>
<div class="" id="rubberbandDiv">
</div>
<canvas id="canvas" width="800" height="520">
canvas not supported
</canvas>
</body>
<script type="text/javascript">
var canvas=document.getElementById('canvas'),
context=canvas.getContext('2d'),
rubberbandDiv=document.getElementById('rubberbandDiv'),
resetButton=document.getElementById('resetButton'),
image= new Image(),
mousedown={},
rubberbandRectangle={},
dragging=false;
function rubberbandStart(x,y){
mousedown.x=x;
mousedown.y=y;
rubberbandRectangle.x=mousedown.x;
rubberbandRectangle.y=mousedown.x;
dragging=true;
}
function rubberbandStretch(x,y){
rubberbandRectangle.left=x<mousedown.x?x:mousedown.x;
rubberbandRectangle.top=y<mousedown.y?y:mousedown.y;
rubberbandRectangle.width=Math.abs(x-mousedown.x);
rubberbandRectangle.height=Math.abs(y-mousedown.y);
moveRubberbandDiv();
resizeRubberbandDiv();
}
function rubberbandEnd(){
var bbox=canvas.getBoundingClientRect();
try{
context.drawImage(canvas,
rubberbandRectangle.left-bbox.left,
rubberbandRectangle.top-bbox.top,
rubberbandRectangle.width,
rubberbandRectangle.height,
0,0,canvas.width,canvas.height);
}
catch(e){
}
resetRubberbandRectangle();
rubberbandDiv.style.width=0;
rubberbandDiv.style.height=0;
hideRubberbandDiv();
dragging=false;
}
function moveRubberbandDiv(){
rubberbandDiv.style.top =rubberbandRectangle.top+"px";
rubberbandDiv.style.left =rubberbandRectangle.left+"px";
}
function resizeRubberbandDiv(){
rubberbandDiv.style.width =rubberbandRectangle.width+"px";
rubberbandDiv.style.height =rubberbandRectangle.height+"px";
}
function showRubberbandDiv(){
rubberbandDiv.style.display='inline';
}
function hideRubberbandDiv(){
rubberbandDiv.style.display='none';
}
function resetRubberbandRectangle(){
rubberbandRectangle={top:0,left:0,width:0,height:0};
}
canvas.onmousedown=function(e){
var x=e.clientX,
y=e.clientY;
e.preventDefault();
rubberbandStart(x,y);
}
window.onmousemove=function(e){
var x=e.clientX,
y=e.clientY;
e.preventDefault();
if(dragging){
rubberbandStretch(x,y);
}
}
window.onmouseup=function(e){
e.preventDefault();
rubberbandEnd();
}
image.onload=function(){
context.drawImage(image,0,0,canvas.width,canvas.height);
}
resetButton.onclick=function(e){
context.clearRect(0,0,context.canvas.width,context.canvas.height);
context.drawImage(image,0,0,canvas.width,canvas.height);
}
image.src='img/BC1.jpg';//图片换一张,我懒不想上图片了
</script>
橡皮筋放大 对图片的拉框放大
最新推荐文章于 2019-05-13 10:01:44 发布