jquery 图片裁切预览,简单拖动

看到网上的图片裁切,很是有感觉,我自己基于jquery-ui,然后根据大家普遍接受的clip原理,实现的简单的预览

想整张图片,不知道怎么整上。

 

 

Js代码 复制代码
  1. // JavaScript Document   
  2. var x;   
  3. var y;   
  4. var prex;   
  5. var prey;   
  6. $(document).ready(function(){   
  7.                     $("#layhandle").draggable({cursor:"move",containment:"#laycropper"});   
  8.                     $("#layhandle").resizable({ handles: 'n, e, s, w' });//调整为四个方向改变   
  9.                     document.οnmοusemοve=getpos;   
  10.                            });   
  11.   
  12. //获取有用坐标   
  13. function getpos(){   
  14.         /*var x=$("#layhandle")[0].offsetWidth-$("#layhandle")[0].clientLeft;//包括边框  
  15.         var y=$("#layhandle")[0].offsetHeight-$("#layhandle")[0].clientTop;*/  
  16.          x=$("#layhandle")[0].clientWidth;//获取可见部分宽度,去掉border   
  17.          y=$("#layhandle")[0].clientHeight;//获取可见部分高度,去掉border   
  18.         var parentx=$("#layhandle")[0].offsetLeft;//获取距离父元素的宽   
  19.         var parenty=$("#layhandle")[0].offsetTop;//获取距离父元素的高   
  20.         //alert($("#layhandle")[0].parentNode.clientWidth);   
  21.         /*  
  22.         rect(top,right,bottom,left)  
  23.         **/  
  24.         var rtop=parenty;   
  25.         var rright=parentx+x;   
  26.         var rbottom=parenty+y;   
  27.         var rleft=parentx;   
  28.         var rectt="rect("+rtop+"px,"+rright+"px,"+rbottom+"px,"+rleft+"px)";   
  29.         $("#laycropper img").css("clip",rectt);//利用clip功能实现切割   
  30.         createview();   
  31.     }   
  32. //生成一个按比例放大后的部分图像,显示在一个预览框里   
  33. function createview(){   
  34.         var bili=2;   
  35.          prex=$("#layhandle")[0].clientWidth;//获取可见部分宽度,去掉border   
  36.          prey=$("#layhandle")[0].clientHeight;//获取可见部分高度,去掉border   
  37.         var parentx=$("#layhandle")[0].offsetLeft;//获取距离父元素的宽   
  38.         var parenty=$("#layhandle")[0].offsetTop;//获取距离父元素的高   
  39.         var rtop=parenty*bili;   
  40.         var rright=(parentx+x)*bili;   
  41.         var rbottom=(parenty+y)*bili;   
  42.         var rleft=parentx*bili;   
  43.         var rectt="rect("+rtop+"px,"+rright+"px,"+rbottom+"px,"+rleft+"px)";   
  44.         $("#preview img").css("clip",rectt);   
  45.     }  

 

 代码很简单,使用的只是简单的操作,希望大家自己做拓展,这里只是简单的思路,我也再完善完善,让其更加自定义。

js拖放功能使用jquery-ui,用起来方便,但终究不是自己的,自己也从网上学习后,写了个简单的拖动脚本。

 

 

Js代码 复制代码
  1. // JavaScript Document   
  2. var layerx;   
  3. var layery;   
  4. var i=0;   
  5. $(document).ready(function(){   
  6.                           $("#demo")[0].οnmοusedοwn=drag;//准备拖动   
  7.                           $("#demo")[0].οnmοusemοve=dmove;//开始拖动   
  8.                           document.οnmοuseup=delmouse;//停止移动   
  9.                            });   
  10.             function drag(event){   
  11.                 event=event||window.event;   
  12.                 stopBubble(event);   
  13.                 stopdefault(event);   
  14.                 i=1;   
  15.                 layerx=event.offsetX||event.layerX;   
  16.                 layery=event.offsetY||event.layerY;   
  17.                 }   
  18.             function dmove(event){   
  19.                 event=event||window.event;   
  20.                 stopBubble(event);   
  21.                 stopdefault(event);   
  22.                 if(i==1){   
  23.                 $("#demo")[0].style.left=event.clientX-layerx+"px";   
  24.                 $("#demo")[0].style.top=event.clientY-layery+"px";   
  25.                 }   
  26.                 }   
  27.             function delmouse(){   
  28.                 i=0;   
  29.                 }   
  30.             //防止冒泡事件   
  31.             function stopBubble(e){   
  32.                 if(e&&e.stopPropagation){   
  33.                     e.stopPropagation();   
  34.                     }   
  35.                 else{   
  36.                     window.event.cancelBubble=true;   
  37.                     }   
  38.                 }   
  39.                 //阻止浏览器默认行为   
  40.             function stopdefault(e){   
  41.                 if(e&&e.preventDefault){   
  42.                     e.preventDefault();   
  43.                     }   
  44.                     else{   
  45.                         window.event.returnValue=false;//取消默认事件   
  46.                         }   
  47.                 }   
  48.               

 缩放的原理也不难,在这就不发了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锦瑟-华年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值