This repository has been archived on 2023-08-30. You can view files and clone it, but cannot push or open issues/pull-requests.
appcat
/
sonist
Archived
1
0
Fork 0
sonist/lib/drag/doc.md

2.3 KiB

拖拽插件

该插件可以让任意一个元素可以被拖拽,而不需要该元素是否具有定位属性。 使用时,在目标元素上添加:drag属性即可以实现拖拽功能。

依赖

依赖Anot框架

浏览器兼容性

  • chrome
  • firefox
  • safari
  • IE10+

用法

只需要在要拖拽的元素上添加:drag即可; 如果要拖拽的元素不是当前元素,只需要给该属性增加一个值为想要拖拽元素的类名或ID。 具体请看示例: 注意: 拖拽的元素不是本身时,只会往父级一级一级找相匹配的


<!DOCTYPE html>
<html>
<head>
<style>
  * {margin:0;padding:0}
  .box {width:200px;height:100px;background:#aaa;}
  .box .handle {width:200px;height:30px;background:#f30;}
</style>
</head>
<body :controller="test">

<div class="box" :drag></div>

<div class="box">
  <div class="handle" :drag="box"></div>
</div>

<script>
import Anot from 'lib/drag/index.js'
Anot({
  $id: 'test'
}) 
</script>

</body>
</html>

额外参数

data-limit

用于限制元素的拖动范围,默认没有限制。 可选值为 "window"和"parent", 分别为 "限制在可视区"和"限制在父级元素的范围"

data-axis

用于限制拖动的方向, 默认值为 "xy",即不限制方向。可选值为 "x"和"y", 即只能在"x轴"或"y轴"方向拖动。

data-beforedrag

拖动前的回调,如果有设置回调方法, 则该回调的返回值,可决定该元素是否能被拖拽, 可用于在特殊场景下,临时禁用拖拽。 注:

  1. 该回调方法,会传入3个参数, 第1个为被拖拽的元素(dom对象), 第2个参数为 该元素的x轴绝对坐标, 第3个元素为y轴绝对坐标;
  2. 该回调方法, 返回false时, 本次拖拽将临时失效, 返回其他值,或没有返回值,则忽略。

data-dragging

元素被拖动时的回调。 注: 1.该回调方法,会传入3个参数, 第1个为被拖拽的元素(dom对象), 第2个参数为 该元素的x轴绝对坐标, 第3个元素为y轴绝对坐标;

data-dragged

元素被拖动结束后的回调。 注:

  1. 该回调方法,会传入3个参数, 第1个为被拖拽的元素(dom对象), 第2个参数为 该元素的x轴绝对坐标, 第3个元素为y轴绝对坐标;
一个音乐播放器, 主打本地音乐播放。支持 自动歌词/自动封面/均衡器等常见功能。
JavaScript 60.1%
SCSS 19.2%
HTML 16.9%
CSS 3.8%