<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jqeruy UI </title>
<link href="http://www.jq22.com/demo/jQuery-tddx20161230/css/jquery-ui.css" rel="stylesheet" type="text/css">
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script src="http://www.jq22.com/jquery/jquery-ui-1.11.0.js"></script>
<script>
$.fn.extend({dragging:function(data){var $this=$(this);var xPage;var yPage;var X;var Y;var xRand=0;var yRand=0;var father=$this.parent();var defaults={move:'both',randomPosition:true,hander:1}
var opt=$.extend({},defaults,data);var movePosition=opt.move;var random=opt.randomPosition;var hander=opt.hander;if(hander==1){hander=$this;}else{hander=$this.find(opt.hander);}
father.css({"position":"relative","overflow":"hidden"});$this.css({"position":"absolute"});hander.css({"cursor":"move"});var faWidth=father.width();var faHeight=father.height();var thisWidth=$this.width()+parseInt($this.css('padding-left'))+parseInt($this.css('padding-right'));var thisHeight=$this.height()+parseInt($this.css('padding-top'))+parseInt($this.css('padding-bottom'));var mDown=false;var positionX;var positionY;var moveX;var moveY;if(random){$thisRandom();}
function $thisRandom(){$this.each(function(index){var randY=parseInt(Math.random()*(faHeight-thisHeight));var randX=parseInt(Math.random()*(faWidth-thisWidth));if(movePosition.toLowerCase()=='x'){$(this).css({left:randX});}else if(movePosition.toLowerCase()=='y'){$(this).css({top:randY});}else if(movePosition.toLowerCase()=='both'){$(this).css({top:randY,left:randX});}});}
hander.mousedown(function(e){father.children().css({"zIndex":"0"});$this.css({"zIndex":"1"});mDown=true;X=e.pageX;Y=e.pageY;positionX=$this.position().left;positionY=$this.position().top;return false;});$(document).mouseup(function(e){mDown=false;});$(document).mousemove(function(e){xPage=e.pageX;moveX=positionX+xPage-X;yPage=e.pageY;moveY=positionY+yPage-Y;function thisXMove(){if(mDown==true){$this.css({"left":moveX});}else{return;}
if(moveX<0){$this.css({"left":"0"});}
if(moveX>(faWidth-thisWidth)){$this.css({"left":faWidth-thisWidth});}
return moveX;}
function thisYMove(){if(mDown==true){$this.css({"top":moveY});}else{return;}
if(moveY<0){$this.css({"top":"0"});}
if(moveY>(faHeight-thisHeight)){$this.css({"top":faHeight-thisHeight});}
return moveY;}
function thisAllMove(){if(mDown==true){$this.css({"left":moveX,"top":moveY});}else{return;}
if(moveX<0){$this.css({"left":"0"});}
if(moveX>(faWidth-thisWidth)){$this.css({"left":faWidth-thisWidth});}
if(moveY<0){$this.css({"top":"0"});}
if(moveY>(faHeight-thisHeight)){$this.css({"top":faHeight-thisHeight});}}
if(movePosition.toLowerCase()=="x"){thisXMove();}else if(movePosition.toLowerCase()=="y"){thisYMove();}else if(movePosition.toLowerCase()=='both'){thisAllMove();}});}});
</script>
<style>
body{
background: #000;
}
#target
{
height:400px;
width:400px;
background: #0a6aa1;
margin:50px auto;
position: relative;
}

</style>
</head>
<body>

<div id="target" class="ui-widget-content">
<i class='hander'></i>
</div>
</body>
<script>
$('#target div').each(function() {
$(this).dragging({
move: 'both',
randomPosition: true,
hander: '.hander'
});
});

$(function() {
$("#target").resizable({
aspectRatio: true//开启按比例缩放,也可以指定比例: 16 / 9
});
});

</script>
</html>