java的左键拖拽_[Java教程]draggabilly一款功能强大的拖动拖拽元素插件

[Java教程]draggabilly一款功能强大的拖动拖拽元素插件

0 2015-10-20 10:00:28

draggabilly是一款功能强大的网页元素拖动拖拽插件。该元素拖拽插件可以和jQuery结合使用,也可以以纯js的方式使用。它提供了强大的拖拽元素的能力,并且可以支持IE8浏览器和移动触摸设备。

bc91bb04e6e9c61e24c974e4440db8f2.gif

在线预览    源码下载

使用方法

安装

可以通过bower或npm来安装该draggabilly插件。bower install draggabillynpm install draggabilly

作为jQuery插件来使用var $draggable = $('.draggable').draggabilly({ // options...})

通过纯JS来初始化该拖动元素插件var elem = document.querySelector('.draggable');var draggie = new Draggabilly( elem, { // options...});// or pass in selector string as first argumentvar draggie = new Draggabilly( '.draggable', { // options...});// if you have multiple .draggable elements// get all draggie elementsvar draggableElems = document.querySelectorAll('.draggable');// array of Draggabilliesvar draggies = []// init Draggabilliesfor ( 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元素。// jQueryfunction 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元素。// vanilla JSfunction listener(/* parameters */) { console.log( 'eventName happened', this.position.x, this.position.y );}// 绑定事件监听draggie.on( 'eventName', listener );// 移除事件监听draggie.off( 'eventName', listener );// 只绑定一次事件,注意是ONCE,而不是ONE或ONdraggie.once( 'eventName', function() { console.log('eventName happened just once');});

dragStart

在拖动开始,元素移动的时候触发。// jQuery$draggable.on( 'dragStart', function( event, pointer ) {...})// vanilla JSdraggie.on( 'dragStart', function( event, pointer ) {...})event:类型:Event。原生的mousedown或touchstart事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

dragMove

在拖拽元素移动的时候触发。// jQuery$draggable.on( 'dragMove', function( event, pointer, moveVector ) {...})// vanilla JSdraggie.on( 'dragMove', function( event, pointer, moveVector ) {...})event:类型:Event。原生的mousemove或touchmove事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

moveVector:类型:Object。鼠标指针移动到距离开始移动位置有多远:{ x: 20, y: -30 }。

dragEnd

当元素拖动结束的时候触发。// jQuery$draggable.on( 'dragEnd', function( event, pointer ) {...})// vanilla JSdraggie.on( 'dragEnd', function( event, pointer ) {...})event:类型:Event。原生的mouseup或touchend事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

pointerDown

当用户指针(mouse, touch, pointer)被按下的时候触发。// jQuery$draggable.on( 'pointerDown', function( event, pointer ) {...})// vanilla JSdraggie.on( 'pointerDown', function( event, pointer ) {...})event:类型:Event。原生的mousedown或touchstart事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

pointerMove

当用户指针移动的时候触发。// jQuery$draggable.on( 'pointerMove', function( event, pointer, moveVector ) {...})// vanilla JSdraggie.on( 'pointerMove', function( event, pointer, moveVector ) {...})event:类型:Event。原生的mousemove或touchmove事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

moveVector:类型:Object。鼠标指针移动到距离开始移动位置有多远:{ x: 20, y: -30 }。

pointerUp

当用户指针被松开的时候触发。// jQuery$draggable.on( 'pointerUp', function( event, pointer ) {...})// vanilla JSdraggie.on( 'pointerUp', function( event, pointer ) {...})event:类型:Event。原生的mouseup或touchend事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

staticClick

在用户指针被按下不松开,并且没有移动的时候触发。// jQuery$draggable.on( 'staticClick', function( event, pointer ) {...})// vanilla JSdraggie.on( 'staticClick', function( event, pointer ) {...})event:类型:Event。原生的mouseup或touchend事件。

pointer:类型:MouseEvent或Touch。有.pageX和.pageY的事件对象。

方法

disable// jQuery$draggable.draggabilly('disable')// vanilla JSdraggie.disable()

enable// jQuery$draggable.draggabilly('enable')// vanilla JSdraggie.enable()

destroy// jQuery$draggable.draggabilly('destroy')// vanilla JSdraggie.destroy()

jQuery.fn.data('draggabilly'):从jQuery对象中获取Draggabilly实例。var draggie = $('.draggable').data('draggabilly')// access Draggabilly propertiesconsole.log( 'draggie at ' + draggie.position.x + ', ' + draggie.position.y )

Draggabilly官方主页:http://draggabilly.desandro.com/

本文网址:http://www.shaoqun.com/a/151443.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值