vue實現移動端觸屏拖拽功能

2022-07-12 01:30:10 字數 1822 閱讀 2781

**:

<

template

>

<

div

class

="floatball"

id="floatball"

@mousedown

="down"

@touchstart.stop

="down"

@mousemove

="move"

@touchmove.stop

="move"

@mouseup

="end"

@touchend.stop

="end"

:style

="">

獎勵規則

div>

template

>

<

script

>

//滑鼠位置和div的左上角位置 差值

vardx, dy

varscreenwidth

=window.screen.width

varscreenheight

=window.screen.height

export

default

, }

},methods:

else

console.log(

'滑鼠點所在位置

', touch.clientx, touch.clienty)

console.log(

'div左上角位置

', event.target.offsettop, event.target.offsetleft)

dx =touch.clientx

-event.target.offsetleft

dy =touch.clienty

-event.target.offsettop

},move()

else

//定位滑塊的位置

this

.position.x

=touch.clientx

-dx;

this

.position.y

=touch.clienty

-dy;

//限制滑塊超出頁面

'螢幕大小', screenwidth, screenheight )if(

this

.position.x

<

0)

elseif(

this

.position.x

>

screenwidth

-touch.target.clientwidth)

if(this

.position.y

<

0)

elseif(

this

.position.y

>

screenheight

-touch.target.clientheight)

//阻止頁面的滑動預設事件

document.addeventlistener(

"touchmove",

function

() ,

false

); }

},//滑鼠釋放時候的函式

end() ,}}

script

>

<

style

>

.floatball

style

>

移動端觸屏實現元素拖拽功能

手指拖拽 options引數控制水平或垂直方向是否可以拖拽 function drag el,options 手指按下點座標 var downpoint 本次手指按下是否有滑動 var istouchmove false el.addeventlistener touchstart handlest...

移動端觸屏滑動拖拽

移動端觸屏滑動的效果其實就是輪播,在pc的頁面上很好實現,繫結click和mouseover等事件來完成。但是在移動裝置上,要實現這種輪播的效果,就需要用到核心的touch事件。處理touch事件能跟蹤到螢幕滑動的每根手指。以下是四種touch事件 touchstart 手指放到螢幕上時觸發 tou...

vue移動端可拖拽功能

類似手機上桌面的小氣泡,可隨意拖動 1 首先在vue的公共元件中 components 新建個元件 拖拽滑動 default drag comp click gonext touchstart down touchmove move touchend end tel storeitems iconf...