前端拖拽外掛gridster.js介紹與使用示例
gridster.js是一款基於jquery的前端拖拽外掛,效果相當的不錯,大家可以先看看Demo(http://gridster.net/#intro)(藍色部分的白塊就是了,可以隨便拖動,娛樂性很強)。 (2)自定義模組內滑鼠的拖動區域(http://gridster.net/demos/custom-drag-handle ):滑鼠點住模組內指定的元素才可以開始拖動,這樣做以免影響模組內其他滑鼠動作,比如超連結。 (3)放大懸停模組(http://gridster.net/demos/expandable-widgets.html):通過resize_widget方法改變滑鼠懸停模組的大小 (4)通過JSON序列建立gridster例項(http://gridster.net/demos/grid-from- serialize.html (5)同一頁面放多個拖拽例項(http://gridster.net/demos/multiple-grids.html ):通過配置引數namespace在同一個頁面配置多個gridster例項 (6)改變模組大小(http://gridster.net/demos/resize.html ):可以通過拖動改變模組的大小 (7)改變模組大小時新增不同限制(http://gridster.net/demos/resize-limits.html ):你可以使用 resize.max_size和resize.min_size配置,以及在模組html當中新增data屬性data-max-sizex、 data-max-sizey、data-min-sizex、data-min-sizey來限制拖動時模組大小的最大最小值。 (8)輸出當前所有模組的位置排布(序列化)( (9)拖動的回撥函式(http://gridster.net/demos/using-drag-callbacks.html ):在開始拖動、拖動結束或位置已改變都可以通過回撥函式呼叫相關的動作,實現一些需要的方法。 (10)改變模組大小後的回撥函式(http://gridster.net/demos/using-resize-callbacks.html ):同上,改變模組大小時的回撥函式,分為開始、改變、結束三個事件。 (11)動態改變gridster例項的寬度(http://gridster.net/demos/dynamic-grid-width.html ):gridster的列數可以自行定義,這樣你可以把模組使勁的~~~往右邊拖,直到你設定的最大值。 二、如何使用? 使用gridster.js要求引用三個必須的檔案: 1.jquery.js(jQuery檔案,gridster官方不提供下載,不多說了-> http://www.jquery.com ) 2.jquery.gridster.js(gridster的主要指令碼) 3.jquery.gridster.css(gridster的樣式檔案) 後面gridster.js官網提供了下載(http://gridster.net/#download ),另外你也可以直接下載最後面的官方示例包 gridster.js.zip(https://github.com/ducksboard/gridster.js/zipball /master,但是請注意,官方示例包裡面沒有jquery,你需要自己放進去,不知道他們故意的還是bug) 下載完了我們就開始用了: 首先html檔案: HTML程式碼 1. <!doctype html> 2. <html> 3. <head> 4. <meta charset="utf-8"> 5. <title>gridster例項</title> 6. <!-- 呼叫jquery,注意你放置的目錄不要搞錯了哦! --> 7. <script src="./js/jquery-1.11.1.min.js" type="text/javascript"></script> 8. <!-- 呼叫gridster.js和css,注意你放置的目錄不要搞錯了哦! --> 9. <script src="./js/jquery.gridster.js" type="text/javascript" charset="utf-8"></script> 10. <link rel="stylesheet" type="text/css" href="./js/jquery.gridster.css"> 11. <script> 12. //通過javascript指令碼來配置拖動例項,隨後我們會講每個配置引數的意義 13. 14. //首先定義一個變數gridster,為了以後呼叫gridster的方法 15. var gridster; 16. 17. $(function(){ 18. 19. gridster = $(".gridster ul").gridster({ //通過jquery選擇DOM實現gridster 20. widget_base_dimensions: [100, 120], //模組的寬高 [寬,高] 21. widget_margins: [5, 5], //模組的間距 [上下,左右] 22. draggable: { 23. handle: 'header' //模組內定義拖動的元素<header>,這裡也支援jquery選擇器,如"span.drag_handle" 24. } 25. }).data('gridster'); 26. 27. }); 28. 29. </script> 30. <!-- 當然,除了呼叫gridster.js和css,你也要為你的html寫一些自己的style --> 31. <style> 32. .gridster ul{margin:0;} 33. .gridster ul li{list-style-type:none;border:1px solid #e0e0e0;} 34. .gridster ul li header{background: none repeat scroll 0% 0% #999;display: block;font-size: 20px;line-height: normal;padding: 4px 0px 6px;margin-bottom: 20px;cursor: move;text-align:center;} 35. </style> 36. </head> 37. <body> 38. <div class="gridster"> 39. <ul> 40. <li data-row="1" data-col="1" data-sizex="2" data-sizey="2"> 41. <!-- 這裡寫了一個header,對應配置裡面的handle,滑鼠落到header上面可以拖,而不是整個塊 --> 42. <header>|||</header> 43. 0 44. </li> 45. <li data-row="1" data-col="3" data-sizex="1" data-sizey="2"> 46. <header>|||</header> 47. 1 48. </li> 49. <li data-row="1" data-col="4" data-sizex="1" data-sizey="1"> 50. <header>|||</header> 51. 2 52. </li> 53. <li data-row="3" data-col="2" data-sizex="3" data-sizey="1"> 54. <header>|||</header> 55. 3 56. </li> 57. 58. <li data-row="4" data-col="1" data-sizex="1" data-sizey="1"> 59. <header>|||</header> 60. 4 61. </li> 62. <li data-row="3" data-col="1" data-sizex="1" data-sizey="1"> 63. <header>|||</header> 64. 5 65. </li> 66. <li data-row="4" data-col="2" data-sizex="1" data-sizey="1"> 67. <header>|||</header> 68. 6 69. </li> 70. <li data-row="5" data-col="2" data-sizex="1" data-sizey="1"> 71. <header>|||</header> 72. 7 73. </li> 74. <li data-row="4" data-col="4" data-sizex="1" data-sizey="1"> 75. <header>|||</header> 76. 8 77. </li> 78. 79. <li data-row="1" data-col="5" data-sizex="1" data-sizey="3"> 80. <header>|||</header> 81. 9 82. </li> 83. </ul> 84. </div> 85. </body> 86. </html> OK,儲存。大功告成!(注意:引用的三個檔案不能少哦~)從第17行“$(function(){”開始,即是gridster的配置指令碼,例如“widget_base_dimensions: [100, 120]”,“widget_margins: [5, 5]”這些都是配置引數。現在你可以開啟來看看這個拖動效果了,Oh,買尬的!也會你會發現很不流暢,這個或許是girdster的小bug或者說不完美的地方,如何改進,明天再講! |