在jQuery magnet.js中 Snapping创建可拖动元素

  • 源码大小:238.77KB
  • 所需积分:1积分
  • 源码编号:19JP-3755
  • 浏览次数:760次
  • 最后更新:2023年07月19日
  • 所属栏目:其他
我要下载
加入收藏
本站默认解压密码:19jp.com 或 19jp_com

简介

这是Magnet.js库的jQuery版本,它允许您创建可拖动元素,并支持移动时的自动捕捉。

如何使用它:

1.下载jquery-magnet.min.js脚本,并将其放在最新的jquery库之后。

  1. <script src="/path/to/cdn/jquery.min.js"></script>
  2. <script src="/path/to/jquery-magnet.min.js"></script>

2.使用可选设置初始化Magnet.js插件。所有可能的设置:

  • 距离:元素吸引同一组中其他元素的距离
  • 吸引人的:使元素具有吸引力
  • allowCtrlKey:允许CTRL键使元素不可处理
  • 允许拖动:允许拖动
  • 使用相对单位:是否使用相对单位
  • 住宿密码:使所有元素都留在父容器中
  • 对齐外部:对齐外部边缘
  • 对齐内部:对齐内边缘
  • 对齐中心:将元素集中到其他元素
  • 对齐租户中心:将元素居中到父容器
  1. let $magnet = $.magnet({
  2. // options and defaults
  3. distance: 0,
  4. attractable: true,
  5. allowCtrlKey: true,
  6. allowDrag: true,
  7. useRelativeUnit: false,
  8. stayInParent: false,
  9. alignOuter: true,
  10. alignInner: true,
  11. alignCenter: true,
  12. alignParentCenter: false
  13. });

3.向组中添加元素。

  1. $magnet.add('.magnet');

4.从组中移除元素。

  1. $magnet.remove('.magnet');
  2. $magnet.removeFull('.magnet');
  3. $magnet.clear();
  4. $magnet.clearFull();

5.您还可以使用以下API方法调整设置。

  1. // distance
  2. $magnet.distance(3);
  3.  
  4. // attractable
  5. $magnet.attractable(); // get
  6. $magnet.attractable(true); // set
  7.  
  8. // allows CTRL key
  9. $magnet.allowCtrlKey(); // get
  10. $magnet.allowCtrlKey(true); // set
  11.  
  12. // allows draggable
  13. $magnet.allowDrag(); // get
  14. $magnet.allowDrag(true); // set
  15.  
  16. // whether or not to use relative unit
  17. $magnet.useRelativeUnit(); // get
  18. $magnet.useRelativeUnit(true); // set
  19.  
  20. // sets/gets aligments
  21. $magnet.alignOuter(true);
  22. $magnet.alignInner(false);
  23. $magnet.alignCenter(true);
  24. $magnet.alignParentCenter(false);
  25. $magnet.alignOuter(); // get
  26.  
  27. // makes elements stay in the parent
  28. $magnet.stayInParent(); // get
  29. $magnet.stayInParent(true); // set
  30.  
  31. // makes elements stay in the parent
  32. $magnet.stayInParent(); // get
  33. $magnet.stayInParent(true); // set

6.事件处理程序。

  1. $magnet.on('magnetstart', function(evt) {
  2. // do something
  3. });
  4.  
  5. $magnet.on('magnetend', function(evt) {
  6. // do something
  7. });
  8.  
  9. $magnet.on('magnetchange', function(evt) {
  10. // do something
  11. });

更新日志:

v1.0.9 (2022-01-10)

  • 错误修复

2021-09-22

  • 已更新依赖项

v1.0.8 (2020-04-05)

  • 已删除调试日志

预览截图