js+jquery实现图片裁剪功能

2020-05-22 16:21:09易采站长站整理

   this.tips.show();
   $(document)
    .bind(“mousemove.r”,function(e){self.move(e,move)})
    .bind(“mouseup.r”,function(){self.end()});   
  },
  end  : function(){
   $(document)
    .unbind(“mousemove.r”)
    .unbind(“mouseup.r”);
   ie 
    &&this.block[0].releaseCapture();
   this.tips.hide(); 
  },
  move : function(e,isMove){
   window.getSelection
    ? window.getSelection().removeAllRanges()
    : document.selection.empty();
    
   var block = this.block; 
   if(isMove){
    var left = Math.max(0,e.clientX – this.offset.left – this.x);
    left = Math.min(left,this.offset.width – this.blockOriginal.width);
    var top = Math.max(0,e.clientY – this.offset.top – this.y);
    top = Math.min(top,this.offset.height – this.blockOriginal.height);
    block.css({left:left,top:top});    
   }else{
    var offset = this.fun(e);
    block.css(offset);
   }
   
   this.setImg();
   this.moveCallBack();
  },
  down : function(e){
   var blockOriginal = this.blockOriginal,
    sTop = Math.max(dBody.scrollTop,dDoc.scrollTop), //出现垂直方向滚动条时候 要计算这个 
    offset = this.offset;
    
   if(e.clientY-offset.top>=blockOriginal.top-sTop){
    var height = Math.min(offset.height – blockOriginal.top,e.clientY-offset.top-blockOriginal.top+sTop),
     top = blockOriginal.top;
   }else{
    var height = Math.min(offset.top+blockOriginal.top-e.clientY-sTop,blockOriginal.top),
     top = Math.max(e.clientY – offset.top+sTop,0);
   }
   return {height:height, top:top};
  },
  up : function(e){
   var blockOriginal = this.blockOriginal,
    sTop = Math.max(dBody.scrollTop,dDoc.scrollTop),
    offset = this.offset;
   if(e.clientY-offset.top-blockOriginal.height<=blockOriginal.top-sTop){
    var top = Math.max(e.clientY-offset.top+sTop,0),