国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

JavaScript+HTML5 canvas實現(xiàn)放大鏡效果完整示例

2024-05-06 16:50:57
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了JavaScript+HTML5 canvas實現(xiàn)放大鏡效果。分享給大家供大家參考,具體如下:

效果:

JavaScript,HTML5,canvas,放大鏡

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title>m.survivalescaperooms.com 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 = {}, //用來保存選擇框數(shù)據(jù)      box = canvas.getBoundingClientRect();  //getBoundingClientRect方法可以獲取元素上、下、左、右分別相對瀏覽器的坐標位置  //創(chuàng)建圖像對象,并加載  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 ? canvas.offsetLeft:x - 45;    y = y - 45 < canvas.offsetTop ? canvas.offsetTop:y - 45;    x = x + 90 < box.right ? x:box.right - 90;    y = y + 90 < box.bottom ? y:box.bottom - 90;    squaredata.left = x;    squaredata.top = y;    moveSquare(x,y);  }  function moveSquare(x,y){    square.style.left = x + "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>

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 临朐县| 固始县| 阜平县| 江达县| 崇礼县| 潢川县| 武邑县| 石渠县| 库尔勒市| 莲花县| 长兴县| 岱山县| 洪洞县| 渭南市| 汉中市| 江永县| 云浮市| 龙口市| 新乐市| 威信县| 同仁县| 长沙市| 文水县| 介休市| 鄄城县| 晴隆县| 灌南县| 仁怀市| 邮箱| 馆陶县| 扶余县| 明溪县| 上饶县| 张家界市| 金阳县| 新竹县| 寿宁县| 平安县| 墨脱县| 黑山县| 观塘区|