JavaScript html5 canvas实现图片上画超链接

本文实例为大家分享了html5 canvas在图片上画超链接的具体代码,供大家参考,具体内容如下

1. html

<canvas id="canvasFile" style="margin-top:15px;" width="500" height="400"></canvas>
<input type="button" id="btnRedo" value="Re-Draw" class="btn btn-warning"/>

2. javascript

var photoW = 400;
    var photoH = 300;
    var photo; 

    // logic load image into canvas
    // ...
    // e.g.
    // photo = new Image();
    // photo.onload = function() {
    // draw photo into canvas when ready
    // ctx.drawImage(photo, 0, 0, photoW, photoH);
    // };
    // load photo into canvas
    // photo.src = picURL; 

 // canvas highlight
    var canvas = document.getElementById('canvasFile'),
      ctx = canvas.getContext('2d'),
      img = new Image;
    var btnDone = document.getElementById('btnDone');
    var btnRedo = document.getElementById('btnRedo'); 

    ctx.strokeStyle = '#FF0000'; 

    function DrawDot(x, y) {
      var centerX = x;
      var centerY = y;
      var radius = 2; 

      ctx.beginPath();
      ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
      ctx.fillStyle = 'red';
      ctx.fill();
      ctx.lineWidth = 2;
      ctx.strokeStyle = '#FF0000';
      ctx.stroke();
    } 

    function startDrawing() {
      ctx.drawImage(img, 0, 0, photoW, photoH);
      canvas.onmousemove = mousemoving;
      canvas.onmousedown = mousedownhandle;
      canvas.onmouseup = mouseuphandle;
      // ## mobile events
      //touchstart – to toggle drawing mode “on”
      //touchend – to toggle drawing mode “off”
      //touchmove – to track finger position, used in drawing
      canvas.addEventListener('touchmove', touchmove, false);
      canvas.addEventListener('touchend', mouseuphandle, false); 

      btnRedo.onclick = function (e) {
        ctx.clearRect(0, 0, ctx.width, ctx.height);
        ctx.drawImage(photo, 0, 0, photoW, photoH);
        savedrawing();
      }
    }
    function savedrawing(e) {
      var image = document.getElementById('canvasFile').toDataURL("image/jpeg");
      image = image.replace('data:image/jpeg;base64,', '');
      $("#imgNric1").val(image);
    }; 

    function mousemoving(e) {
      if (drawing) {
        mousedownhandle(e);
      }
    } 

    var drawing = false; 

    function mousedownhandle(e) {
      drawing = true;
      var r = canvas.getBoundingClientRect(),
        x = e.clientX - r.left,
        y = e.clientY - r.top; 

      DrawDot(x, y);
    }  

    function mouseuphandle(e) {
      savedrawing();
      e.preventDefault();
      drawing = false; 

    } 

    //// mobile touch events
    function touchmove(e) {
      if (e.clientX > 800) {
        mousedownhandle(e);
        return;
      } 

      var r = canvas.getBoundingClientRect(),
        //event.changedTouches[0].pageX + ":" + event.changedTouches[0].pageY;
        x = e.changedTouches[0].pageX - r.left,
        y = e.changedTouches[0].pageY - r.top; 

      DrawDot(x, y);
      e.preventDefault();
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JS实现网页上随机产生超链接地址的方法

    本文实例讲述了JS实现网页上随机产生超链接地址的方法.分享给大家供大家参考,具体如下: 这是一个JavaScript的应用,每刷新一次页面,会自动更换一次链接,虽然不常用,不过对Javascript随机函数Math.random() 的使用将直到引导作用. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-math-rand-url-show-codes/ 具体代码如下: <html> <head> <title>在

  • Ext javascript建立超链接,进行事件处理的实现方法

    1,如何在javasript建立超链接 <script type="text/JavaScript"> //方法一: location.href='网址'; //方法二: document.write('<a href="网址">文字</a>'); </script> 2,应用到Ext中的树控件事件处理 tree_03.js 复制代码 代码如下: Ext.onReady(function(){ var root = n

  • 四种参数传递的形式——URL,超链接,js,form表单

    什么时候用GET,  查,删 什么时候用POST,增,改  (特列:登陆用Post,因为不能让用户名和密码显示在URL上) 4种get传参方式 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>&l

  • 让网页上的超链接失效,不能点击的js代码

    让网页上的超链接失效,不能点击 a {poorfish:expression(this.onclick=function kill(){return false})} 我们 www.163.com www.sohu.com [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • js实现a标签超链接提交form表单的方法

    本文实例讲述了js实现a标签超链接提交form表单的方法.分享给大家供大家参考.具体实现方法如下: <form action="/home/search" method="get" id="search_form"> <div class="searchBox png" id="searchBox"> <input type="text" id="

  • javascript禁止超链接跳转的方法

    本文实例讲述了javascript禁止超链接跳转的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

  • js 取消超链接的方法小结

    单个链接取消链接并触发js事件 复制代码 代码如下: <a href="javascript:void(0);" onclick="alert('ok')">测试</a> 批量将网页中的链接取消或重新设置链接的代码: 百度    我们 服务器软件    素材下载 站长查询    脚本下载 function doLinkAll(action){ var arr=document.getElementsByTagName("A"

  • 超链接怎么正确调用javascript函数

    点击超链接调用 JavaScript 函数,一般人都用: 复制代码 代码如下: <a href="javascript:function();"> 但这有个缺点,就是点击链接后,页面上的GIF动画将静止. 试看如下代码: 复制代码 代码如下: <script type="text/javascript"> <!-- function Foo() {     //do something } //--> </script>

  • JavaScript html5 canvas实现图片上画超链接

    本文实例为大家分享了html5 canvas在图片上画超链接的具体代码,供大家参考,具体内容如下 1. html <canvas id="canvasFile" style="margin-top:15px;" width="500" height="400"></canvas> <input type="button" id="btnRedo" value

  • JavaScript+html5 canvas实现图片破碎重组动画特效

    也许你见过HTML5图片破碎动画特效,实现的原理也挺简单的.但是你应该没有见过视频也可以破碎重组,这个HTML5动画就是利用Canvas的相关特性,实现了点击鼠标让视频破碎重组的效果.在视频区域点击鼠标,即可让该区域的视频破碎,让后经过一段时间后,破碎的区域又可以重组还原,视觉效果非常棒. HTML代码 <div style="display:none"> <video id="sourcevid" autoplay="true"

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

    本文实例讲述了JavaScript+HTML5 canvas实现放大镜效果.分享给大家供大家参考,具体如下: 效果: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net canvas放大镜</title> <style> #copycanvas { border: 1px

  • js HTML5 canvas绘制图片的方法

    本文实例为大家分享了HTML5 canvas绘制图片的具体代码,供大家参考,具体内容如下 demo.js window.onload=function() { createcanvas(); drawImage(); } function createcanvas() { var CANVAS=document.getElementById('mycanvas'); context=CANVAS.getContext('2d'); } function drawImage() { var img

  • 基于javascript html5实现多文件上传

    本文实例为大家分享了javascript html5实现多文件上传的实现方法,具体内容如下 HTML结构: <div class="container"> <label>请选择一个图像文件:</label> <input type="file" id="file_input" multiple/> </div> 顺便说下这个上传的主要逻辑: 用input标签并选择type=file,记得

  • javascript+HTML5 canvas绘制时钟功能示例

    本文实例讲述了javascript+HTML5 canvas绘制时钟功能.分享给大家供大家参考,具体如下: 效果如下: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net canvas绘制时钟</title> <style> div{text-align:cent

  • JavaScript+html5 canvas制作的百花齐放效果完整实例

    本文实例讲述了JavaScript+html5 canvas制作的百花齐放效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title>demo</title> <style type="text/css"> body { margin:0; padding:0; } #canvas { border:5px solid gra

  • JavaScript+html5 canvas制作色彩斑斓的正方形效果

    本文实例讲述了JavaScript+html5 canvas制作色彩斑斓的正方形效果.分享给大家供大家参考,具体如下: 运行效果截图如下: index.html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> <title>canvas中的透明度</t

  • JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例

    本文实例讲述了JavaScript+html5 canvas绘制缤纷多彩的三角形效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE HTML> <html> <head> <title>demo</title> <style type="text/css"> body { margin:0; padding:0; } #canvas { width:500px; heig

  • JavaScript html5 canvas绘制时钟效果

    本文实例讲述了JavaScript+html5 canvas绘制时钟效果.分享给大家供大家参考,具体如下: HTML部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0

随机推荐