HTML5新增的拖拽属性draggable,怎么实现拖拽?

draggable定义和用法:

1、draggable 属性规定元素是否可拖动。

2、提示: 链接和图像默认是可拖动的。

3、提示: draggable 属性经常用于拖放操作。

注意:draggable 属性是 HTML5 新增的。

设置属性值

描述
true规定元素是可拖动的。
false规定元素是不可拖动的。
auto使用浏览器的默认特性。

使用语法:<element draggable="true|false|auto"> 

代码演示:

//拖拽功能示例

html:
<div id="div1">
    <p id="drag1" draggable="true" ondragstart="dragStart(event)"     
     ondrop="drop(event)" ondragend="dragEnd(event)">拖拽标签</p>
</div>


js:

//p标签定义拖拽开始
function dragStart(e){
   //拖拽前操作
}

//拖拽移动
function drop(e){
    e.preventDefault();
}

//结束拖拽
function dragEnd(e){
    e.preventDefault();
}

拓展一下其他方法:

        其实还有一种方法,如果是jquery项目,可以用jquery-ui.js的脚本,这样就可以不用在标签上面设置draggable='true'和绑定一堆事件了。

//使用标签绑定draggable的html:
<html>
    <div id="div1">
        <p id="drag1" draggable="true" ondragstart="dragStart(event)"     
         ondrop="drop(event)" ondragend="dragEnd(event)">拖拽标签</p>
    </div>
</html>

//使用jquery-ui.js后的html标签示例
<html>
    <div id="jquery_div">
        <p id="jquery_drag">拖拽标签</p>
    </div>
</html>

<script src="/jquery-ui.js"></script>
<script>
    //按需使用
    $('#jquery_drag').draggable({
       //helper: "clone",         //拖动时克隆,默认是 original
       //axis:"x",                //拖动方向
       containment:"#jquery_div",    //一个容器,div就只能在容器的范围内活动了
       cursor: "move",            //拖动时鼠标指针的状态 ,
       cursorAt:{top:10},         //拖动的时候鼠标指针的位置,相对被拖动对象的边框,单位px
       opacity: 0.40,             //设置对象被拖动时的透明度
       handle: "div",             //设置拖动控制器,当鼠标按住控制器的时候,才能拖动对象
       scroll:false,              //设置当拖动超出整个浏览器窗口,是否滚动浏览器
       distance: 20,              //设置当鼠标拖动多少像素时对象才会移动
       //delay: 1000,             //设置延迟时间 单位毫秒
       grid:[50,50],              //设置每次拖动的步进 单位px
       dragPrevention:['input'],  //设置被拖动的div碰到那些dom元素时停止
       start:function(e){},    //开始拖动执行的函数
       drag:function(e){},     //拖动时执行的函数
       stop:function(e){}      //拖动停止执行的函数
    });
    
    //默认方式:什么都不定义也可以拖动
     $('#jquery_drag').draggable();

</script>

Tips:文中如有疑问或者错处,可以私信“且慢码农”。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
draggable是一个拖拽组件,可以用于实现拖拽功能。根据引用和引用的描述,可以使用draggable实现以下功能: 1. 在二级draggable中使用list属性:可以使用list属性作为值属性的替代,使得两个draggable使用同一数据源。这样,在二级draggable中可以使用list来替代v-model。 2. 实现类似teambition的效果:可以使用draggable实现类似teambition的效果,即最外层为一个draggable,可以左右拖动,每个块里面还有小块,小块组成一个draggable,可以上下拖动,也可以在大的块之间拖动。 以下是一个使用draggable的示例代码: ```html <template> <div> <draggable v-model="list1" group="blocks" handle=".handle"> <div v-for="(item, index) in list1" :key="index" class="block"> <div class="handle">拖动</div> <draggable v-model="item.list2" group="blocks" handle=".handle2"> <div v-for="(subItem, subIndex) in item.list2" :key="subIndex" class="sub-block"> <div class="handle2">拖动</div> {{ subItem }} </div> </draggable> </div> </draggable> </div> </template> <script> import draggable from 'vuedraggable'; export default { components: { draggable }, data() { return { list1: [ { list2: ['小块1', '小块2', '小块3'] }, { list2: ['小块4', '小块5', '小块6'] } ] }; } }; </script> <style> .block { border: 1px solid #ccc; margin-bottom: 10px; padding: 10px; } .sub-block { border: 1px solid #ccc; margin-bottom: 5px; padding: 5px; } </style> ``` 这个示例中,使用了Vue.js和vuedraggable库来实现拖拽功能。在模板中,使用了两个嵌套的draggable组件,分别表示最外层的块和内部的小块。通过设置v-model来绑定数据源,实现拖拽功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值