web299.com
全部
教育
语言/资格考试
法律
互联网
政务民生
Word模板
Excel模板
PPT模板
网页特效
小程序模板
网站模板
首页
教育
语言/资格考试
法律
互联网
政务民生
Word模板
Excel模板
PPT模板
网页特效
小程序模板
网站模板
当前位置:
首页
>
网页特效
>
其他
draggabilly 功能强大的拖动拖拽元素插件
分类:
其他
日期:
2024-05-14
点击(1)
评论(0)
演 示
免费下载
简介
#### 安装 可以通过bower或npm来安装该draggabilly插件。 ```html bower install draggabilly npm install draggabilly ``` ##### 作为jQuery插件来使用 ```html var $draggable = $('.draggable').draggabilly({ // options... }) ``` ##### 通过纯JS来初始化该拖动元素插件 ```html var elem = document.querySelector('.draggable'); var draggie = new Draggabilly( elem, { // options... }); // or pass in selector string as first argument var draggie = new Draggabilly( '.draggable', { // options... }); // if you have multiple .draggable elements // get all draggie elements var draggableElems = document.querySelectorAll('.draggable'); // array of Draggabillies var draggies = [] // init Draggabillies for ( var i=0, len = draggableElems.length; i < len; i++ ) { var draggableElem = draggableElems[i]; var draggie = new Draggabilly( draggableElem, { // options... }); draggies.push( draggie ); } ``` ##### CSS样式 插件在拖动元素的时候会附加两个class类: - .is-pointer-down:当用户第一次点击元素(mouse, touch, pointer)是添加的class。 - .is-dragging:当元素开始拖动的时候添加的class。 #### 配置参数 - axis:类型:String,可用值:'x' 或 'y'。约束元素只能在X或Y轴移动。 - containment:类型:Element,Selector String或Boolean。约束元素只能在指定的容器中拖动。如果设置为true,那么约束容器就是该元素的父元素。 - grid:类型:Array,可用值:[ x, y ]。元素拖动是会以网格的方式进行吸附。 - handle:类型:Selector String。指定拖动交互的元素。 #### 事件 ##### 通过jQuery来绑定事件 可以通过标准的jQuery事件:.on(),.off(),.one()来绑定事件,在事件内部,this引用就是Draggabilly元素。 ```html // jQuery function listener(/* parameters */) { // 获取Draggabilly对象实例 var draggie = $(this).data('draggabilly'); console.log( 'eventName happened', draggie.position.x, draggie.position.y ); } // 绑定事件监听 $draggable.on( 'eventName', listener ); // 移除事件监听 $draggable.off( 'eventName', listener ); // 只绑定一次事件,注意是ONCE,而不是ONE或ON $draggable.one( 'eventName', function() { console.log('eventName happened just once'); }); ``` ##### 通过纯JS来绑定事件 也可以通过纯JS使用.on(),.off(),.one()方法来绑定事件,在事件内部,this引用就是Draggabilly元素。 ```html // vanilla JS function listener(/* parameters */) { console.log( 'eventName happened', this.position.x, this.position.y ); } // 绑定事件监听 draggie.on( 'eventName', listener ); // 移除事件监听 draggie.off( 'eventName', listener ); // 只绑定一次事件,注意是ONCE,而不是ONE或ON draggie.once( 'eventName', function() { console.log('eventName happened just once'); }); ``` ##### dragStart 在拖动开始,元素移动的时候触发。 ```html // jQuery $draggable.on( 'dragStart', function( event, pointer ) {...}) // vanilla JS draggie.on( 'dragStart', function( event, pointer ) {...}) ``` - event:类型:Event。原生的mousedown或touchstart事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 ##### dragMove 在拖拽元素移动的时候触发。 ```html // jQuery $draggable.on( 'dragMove', function( event, pointer, moveVector ) {...}) // vanilla JS draggie.on( 'dragMove', function( event, pointer, moveVector ) {...}) ``` - event:类型:Event。原生的mousemove或touchmove事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 - moveVector:类型:Object。鼠标指针移动到距离开始移动位置有多远:{ x: 20, y: -30 }。 ##### dragEnd 当元素拖动结束的时候触发。 ```html // jQuery $draggable.on( 'dragEnd', function( event, pointer ) {...}) // vanilla JS draggie.on( 'dragEnd', function( event, pointer ) {...}) ``` - event:类型:Event。原生的mouseup或touchend事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 ##### pointerDown 当用户指针(mouse, touch, pointer)被按下的时候触发。 ```html // jQuery $draggable.on( 'pointerDown', function( event, pointer ) {...}) // vanilla JS draggie.on( 'pointerDown', function( event, pointer ) {...}) ``` - event:类型:Event。原生的mousedown或touchstart事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 ##### pointerMove 当用户指针移动的时候触发。 ```html // jQuery $draggable.on( 'pointerMove', function( event, pointer, moveVector ) {...}) // vanilla JS draggie.on( 'pointerMove', function( event, pointer, moveVector ) {...}) ``` - event:类型:Event。原生的mousemove或touchmove事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 - moveVector:类型:Object。鼠标指针移动到距离开始移动位置有多远:{ x: 20, y: -30 }。 ##### pointerUp 当用户指针被松开的时候触发。 ```html // jQuery $draggable.on( 'pointerUp', function( event, pointer ) {...}) // vanilla JS draggie.on( 'pointerUp', function( event, pointer ) {...}) ``` - event:类型:Event。原生的mouseup或touchend事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 ##### staticClick 在用户指针被按下不松开,并且没有移动的时候触发。 ```html // jQuery $draggable.on( 'staticClick', function( event, pointer ) {...}) // vanilla JS draggie.on( 'staticClick', function( event, pointer ) {...}) ``` - event:类型:Event。原生的mouseup或touchend事件。 - pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。 #### 方法 disable ```html // jQuery $draggable.draggabilly('disable') // vanilla JS draggie.disable() ``` enable ```html // jQuery $draggable.draggabilly('enable') // vanilla JS draggie.enable() ``` destroy ```html // jQuery $draggable.draggabilly('destroy') // vanilla JS draggie.destroy() ``` jQuery.fn.data('draggabilly'):从jQuery对象中获取Draggabilly实例。 ```html var draggie = $('.draggable').data('draggabilly') // access Draggabilly properties console.log( 'draggie at ' + draggie.position.x + ', ' + draggie.position.y ) ```
相关推荐
html5浪漫粒子表白文字特效
SlidesJS幻灯片特效
html5瀑布流相册特效
css3 svg实现的情人节表白鲜花动画特效
t-scroll.js基于ES6的DOM元素,过渡动画库插件
纯js写省市区三级联动效果
广告
广告