之前實現元素的拖拽很多都是通過js手寫的,后來發現使用jqueryui實現,簡單特別多,而且能完成很多附加功能。
首先是最基本的用法。$(" ").draggable()就能實現指定元素的拖拽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.min.css"> <script src="//apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//apps.bdimg.com/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> </head> <body> <div class="selector" style="width: 300px;height: 300px;background-color: lightsalmon;" > </div> </body> <script type="text/javascript"> $(function(){ $( ".selector" ).draggable(); }) </script> </html>
有時候,我們需要拖動元素內部某一塊禁止拖動,又有些時候,我們只需要某一塊內容能被拖動。
可以借助屬性handle和cancel來實現,handle是可以指定元素,只有被指定的元素能拖動。cancel是剛好相反
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.min.css"> <script src="//apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//apps.bdimg.com/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> </head> <body> <div class="handle" style="width: 300px;height: 300px;background-color: lightsalmon;" > <div class="selector1" style="width:100px;height: 100px;background-color: lightseagreen;"></div> <div id="test1" style="width: 100px;height: 100px;background-color: lightgreen;"></div> </div> <div class="cancel" style="width: 300px;height: 300px;background-color: lightcyan;" > <div class="selector2" style="width:100px;height: 100px;background-color: lightgrey;"></div> <div id="test2" style="width: 100px;height: 100px;background-color: lightpink;"></div> </div> </body> <script type="text/javascript"> $(function(){
//可以同時指定多個,使用逗號隔開 $( ".handle" ).draggable({ handle: ".selector1,#test1" }); $( ".cancel" ).draggable({ cancel: ".selector2,#test2" }); }) </script> </html>