`
xiangm
  • 浏览: 3936 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

前端拖拽插件gridster.js介绍与使用示例

 
阅读更多

 

原网站:http://gridster.net(此域名已过期)

gridster.js后续的更新:https://github.com/dsmorse/gridster.js

issues:https://github.com/ducksboard/gridster.js/issues

 

 

 

转载:前端拖拽插件gridster.js中文文档 2014-8-6 10:11

gridster.js是一款基于jquery的前端拖拽插件,效果相当的不错,大家可以先看看Demo(http://gridster.net/#intro)(蓝色部分的白块就是了,可以随便拖动,娱乐性很强)。

一、更多示例

gridster.js允许使用者做一些自定义配置(第二节会讲到),通过配置可能实现不同的效果和功能,并且可以做一些限制。以下的示例可能在知道如何 使用后才能更好理解,所以放在前面只做一个索引,有的功能不理解也没关系,gridster只是让大家知道它可以实现大概以下功能。
(1)动态添加模块(http://gridster.net/demos/adding-widgets-dynamically.html ):使用add_widget方法,通过数组创建一个gridster实例,产生的模块自动排列,无需指定相对位置。
(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 ):通过JSON序列生成一个gridster实例(有了这个方法我们就可以方便的从数据库读取用户的模块位置定义等等)
(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)输出当前所有模块的位置排布(序列化)(http://gridster.net/demos/serialize.html ):通过serialize方法获取模块的位置信息,可以当作JSON对象使用(这样就可以方便的存储数据)
(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. <metacharset="utf-8">

5. <title>gridster实例</title>

6. <!-- 调用jquery,注意你放置的目录不要搞错了哦! -->

7. <scriptsrc="./js/jquery-1.11.1.min.js"type="text/javascript"></script>

8. <!-- 调用gridster.js和css,注意你放置的目录不要搞错了哦! -->

9. <scriptsrc="./js/jquery.gridster.js"type="text/javascript"charset="utf-8"></script>

10. <linkrel="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. <divclass="gridster">

39. <ul>

40. <lidata-row="1"data-col="1"data-sizex="2"data-sizey="2">

41. <!-- 这里写了一个header,对应配置里面的handle,鼠标落到header上面可以拖,而不是整个块 -->

42. <header>|||</header>

43. 0

44. </li>

45. <lidata-row="1"data-col="3"data-sizex="1"data-sizey="2">

46. <header>|||</header>

47. 1

48. </li>

49. <lidata-row="1"data-col="4"data-sizex="1"data-sizey="1">

50. <header>|||</header>

51. 2

52. </li>

53. <lidata-row="3"data-col="2"data-sizex="3"data-sizey="1">

54. <header>|||</header>

55. 3

56. </li>

57.

58. <lidata-row="4"data-col="1"data-sizex="1"data-sizey="1">

59. <header>|||</header>

60. 4

61. </li>

62. <lidata-row="3"data-col="1"data-sizex="1"data-sizey="1">

63. <header>|||</header>

64. 5

65. </li>

66. <lidata-row="4"data-col="2"data-sizex="1"data-sizey="1">

67. <header>|||</header>

68. 6

69. </li>

70. <lidata-row="5"data-col="2"data-sizex="1"data-sizey="1">

71. <header>|||</header>

72. 7

73. </li>

74. <lidata-row="4"data-col="4"data-sizex="1"data-sizey="1">

75. <header>|||</header>

76. 8

77. </li>

78.

79. <lidata-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或者说不完美的地方,如何改进,明天再讲!

分享到:
评论

相关推荐

    jQuery基于gridster.js可拖动网格布局插件.zip

    二次开发时,你可以根据需求调整这些设置,或者扩展插件功能,比如添加自定义的动画效果,或者与其他jQuery插件结合使用。 总的来说,`jQuery基于gridster.js可拖动网格布局插件.zip`提供了一个强大的工具,帮助...

    jQuery基于gridster.js可拖动网格布局插件

    在本项目中,我们关注的是一个基于jQuery的插件——Gridster.js,它提供了一个可拖动的网格布局系统。Gridster.js允许用户通过鼠标自由地拖动和排列网格元素,从而创建出高度自定义的界面布局。 Gridster.js的核心...

    多列网格式拖动布局插件Gridster.js

    Gridster.js 是一款强大的前端JavaScript库,专门用于实现多列网格布局。这款插件允许用户通过拖放操作轻松调整元素的位置和大小,非常适合构建可自定义布局的仪表盘、应用界面或者内容管理平台。在网页设计中,这种...

    前端项目-jquery.gridster.zip

    var gridster = $('.gridster').gridster({ widget_base_dimensions: [100, 100], widget_margins: [10, 10], min_cols: 4, max_cols: 8 }).data('gridster'); ``` - **添加元素**:然后,你可以向网格中...

    Gridster.js多列网格式拖动布局插件

    网页中拖动 DIV 是很常见的操作,今天就分享给大家一个 jQuery 多列网格拖动布局插件,和其它的插件不太一样的地方在于你处理拖放的元素支持不同大小,并且支持多列的网格布局,它们会自动的根据位置自己排序和调整...

    jQuery拖拽插件drag.js

    首先,我们要明确jQuery拖拽插件drag.js的核心功能:它允许用户通过鼠标或触摸事件来拖动DOM元素,实现元素在页面上的自由移动。这在创建可自定义布局、拖放排序列表或者构建交互式界面时非常有用。 拖拽插件的工作...

    win10拖拽布局插件jquery.gridster.js

    《win10拖拽布局插件jquery.gridster.js详解及应用》 在现代网页开发中,用户界面的设计和交互体验愈发重要。为了实现类似于Windows 10系统中的自由拖拽布局,开发者们常常会借助于专门的插件来达成这一目标。其中...

    gridster插件详解

    var gridster = $("#gridster").gridster({ widget_base_dimensions: [140, 140], widget_margins: [10, 10] }).data('gridster'); }); ``` **6. Gridster 的拓展和优化** Gridster 虽然功能强大,但可能...

    jQuery拖动拖拽插件draggabilly.pkgd.js

    《jQuery拖动拖拽插件draggabilly.pkgd.js详解》 在现代网页开发中,用户交互体验的提升已经成为了一项重要的设计考量。其中,拖放(Drag and Drop)功能作为增强用户交互的一种手段,被广泛应用在各种场景,如文件...

    jQuery拖拽插件gridster使用指南

    1.gridster插件功能 实现类似于win8 磁贴拖拽的功能 2.gridster官方地址 http://gridster.net/ 在官方的网站上也有插件的帮助和实例,但是按照官方的说明,我在本地测试总是出现这样那样的问题,一是无法移动,二是...

    可拖动图片弹出层插件layer.js.rar

    可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可...

    bootstrap-table实现 行拖拽 插件jquery.tablednd.js bootstrap-table-reorder-rows.js

    bootstrap-table实现 行拖拽 插件 jquery.tablednd.js bootstrap-table-reorder-rows.js bootstrap-table-reorder-rows.css

    jQuery拖动拖拽插件draggabilly.pkgd.js.zip

    《jQuery拖动拖拽插件draggabilly详解与应用》 在Web开发中,实现元素的拖放功能是一项常见的需求。jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件来简化这一过程。其中,"draggabilly.pkgd.js"就是一个...

    兼容移动手机的js拖拽插件Draggin.js

    Draggin.js是一款兼容移动手机的js拖拽插件。该js拖拽插件的特点是跨平台,体积小,运行速度快。该js拖拽插件会自动计算元素相对于文档左上角的位置,然后通过CSS transform属性将它重新定位。

    jquery.easyDrag.js史上最强大的拖拽插件

    通过结合其他jQuery插件或JavaScript库,开发者可以构建出更加丰富多样的交互体验,例如与Sortable.js或Isotope等库集成,实现更复杂的布局和组织方式。 总的来说,jQuery.easyDrag.js以其强大的功能、灵活的配置...

    cropper.js前端头像裁剪示例,附php代码

    【标题】:“cropper.js前端头像裁剪示例,附php代码”涉及的主要知识点是前端图像处理技术,特别是利用JavaScript库cropper.js实现头像裁剪功能,并结合PHP进行后端处理。以下是对这些技术的详细说明: 一、cropper...

    gridster可拖拽页面布局插件.zip

    gridster.js是一款基于jQuery的前端拖拽插件,效果相当的不错,大家可以先看看Demo(http://gridster.NET/#intro)(蓝色部分的白块就是了,可以随便拖动,娱乐性很强)。

    JS 音频可视化插件Wavesurfer.js的使用教程.docx

    ### JS 音频可视化插件 ...通过本文的介绍,相信读者已经掌握了 Wavesurfer.js 的基本使用方法以及如何利用 Regions 插件实现音频波形上的标注功能。希望这些知识能够帮助大家在实际项目中更好地应用 Wavesurfer.js。

    jQuery可拖动网格布局排列代码.zip

    gridster.js是一个专为创建自适应、可拖动的网格系统的JavaScript插件。它允许用户通过简单的拖放操作来调整网格中的元素大小和位置,极大地提高了用户界面的灵活性。Gridster.js的核心特性包括: 1. **响应式设计*...

Global site tag (gtag.js) - Google Analytics