当前位置 主页 > 网站技术 > 代码类 >

    js实现图片区域可点击大小随意改变(适用移动端)代码实例(2)

    栏目:代码类 时间:2019-09-11 18:15

    接着是工具的js代码

    var canvas = document.getElementById('canvas');  var ctx = canvas.getContext('2d');ctx.lineWidth = 1;ctx.strokeStyle="green";/*ctx.beginPath();ctx.moveTo(10, 100);ctx.lineTo(300,100);ctx.stroke(); ctx.closePath();*/var run = false;var moduleList = [];var path = [];var $baseImg = ''; var $cover = $(".cover");var $urlAddress = $('#urlAddress');var $dec = $("#dec"); var $baseWidth = $('#width');var $baseHeight = $('#height');  canvas.onmousedown = function(e){  //console.log(e.clientX);  //console.log(e.offsetX);   ctx.beginPath();  ctx.moveTo(e.offsetX, e.offsetY);  path.push({    x:e.offsetX,    y:e.offsetY  });  run = true;} canvas.onmousemove = function(e){  //var x = e.offsetX;      if(run){    ctx.lineTo(e.offsetX, e.offsetY);    ctx.stroke();    path.push({      x:e.offsetX,      y:e.offsetY    });  }}canvas.onmouseup = function(e){  run = false;  ctx.closePath();  if(path.length > 10){    $cover.removeClass('hide');  }else{    path = [];   }}  //保存数据function saveData(){  var data = {    "dec":"图片点击",    "version":"1",    "img":$baseImg,    "module":moduleList,    "baseWidth":$baseWidth.val(),    "baseHeight":$baseHeight.val()  }  console.log(JSON.stringify(data));  localStorage.setItem("data",JSON.stringify(data));}//查看数据function seeData(flag){  var data = {    "dec":"图片点击",    "version":"1",    "img":$baseImg,    "module":moduleList,    "baseWidth":$baseWidth.val(),    "baseHeight":$baseHeight.val()  }  if(flag){    console.log(JSON.stringify(data));  }  return data;}   //图片背景$('#imgload').on('change',function(){    imgToBase64(this.files[0],function(result){      console.log(result);      var base64Data = 'url(' + result + ')';      $(canvas).css({'background-image': base64Data});      $baseImg = result;    });     }); //转化为base64function imgToBase64(file,callback){   var reader = new FileReader();   reader.onload = function (e) {    callback(e.target.result);  };  reader.readAsDataURL(file); // 读取完后会调用onload方法} //确认信息$cover.on('click','.contain',function(){  if($urlAddress.val() == ''){    alert('地址不能为空');  }else{    moduleList.push({      id:getName(),      path:path,      url:$urlAddress.val(),      dec:$dec.val()    });    path = [];     $cover.addClass('hide');  }});  //修改高度和宽度$baseWidth.on('change',function(){  $(canvas).css({'width': $(this).val()});});$baseHeight.on('change',function(){  $(canvas).css({'height': $(this).val()});});  //随机获取名称function getName(){  var timer = new Date();  var arr = JSON.stringify(timer).replace(/:|-|"/g ,'').split('.');  var str = arr.join('');  return str;}  //导入模板function getData(){  var data = JSON.parse(localStorage.getItem("data"));  if(data){    moduleList = data.module;;    $baseImg = data.img;    drawn(data);  }else{    alert('没有模板数据.');  }} //撤销function reduo(){  moduleList.pop();  ctx.clearRect(0, 0, canvas.width, canvas.height);  drawn(seeData());}  //清除所有function clearAll(){  moduleList = [];  ctx.clearRect(0, 0, canvas.width, canvas.height);} //给数据,画出来function drawn(data){  ctx.clearRect(0, 0, canvas.width, canvas.height);    var module = data.module;    var base64Data = 'url(' + data.img + ')';    $(canvas).css({'background-image': base64Data});    $baseWidth.val(data.baseWidth);    $baseHeight.val(data.baseHeight);    $(canvas).css({'width': data.baseWidth,'height':data.baseHeight});         //开始画    for(var i = 0; i < module.length;i++){       var path = module[i].path;      ctx.beginPath();      ctx.moveTo(path[0].x, path[0].y);      for(var j = 1; j < path.length; j++){        ctx.lineTo(path[j].x, path[j].y);        ctx.stroke();       }      ctx.closePath();      }}