国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue模塊拖拽實(shí)現(xiàn)示例代碼

2024-05-06 15:41:46
字體:
供稿:網(wǎng)友

正巧在之前面試中遇到問實(shí)現(xiàn)拖拽效果

當(dāng)時(shí)面試的時(shí)候簡(jiǎn)單回答了實(shí)現(xiàn)的方式與邏輯。

現(xiàn)在閑來無事,把這個(gè)東西實(shí)現(xiàn)了一下。

原理很簡(jiǎn)單,寫的很方便。

數(shù)據(jù)驅(qū)動(dòng),建立一個(gè)數(shù)組,數(shù)組初始長(zhǎng)度為1

拖動(dòng)觸發(fā)時(shí),添加一個(gè)對(duì)象到數(shù)組中,拖動(dòng)的是下標(biāo)為0的對(duì)象,新建的還在原來位置放著,等待下次拖動(dòng)。

話不多說,上代碼

<template>  <div class="view">   <div class="x" @mousedown="move($event,index)" v-for="(x,index) in i">    <span v-if="index+1 !== i.length">{{index+1}}</span>    <input v-model="x.input">   </div>   {{i}}  </div></template><script>  export default {    name: "index",   data(){     return{      positionX:0,      positionY:0,      i:[       {input:''}      ]     }   },   methods:{     move(e,x){      let odiv = e.target;    //獲取目標(biāo)元素      //算出鼠標(biāo)相對(duì)元素的位置      let disX = e.clientX - odiv.offsetLeft;      let disY = e.clientY - odiv.offsetTop;      let flag = true;      document.onmousemove = (e)=>{    //鼠標(biāo)按下并移動(dòng)的事件       if(flag && x === this.i.length-1){        flag = false;        this.i.push({input:''})       }       //用鼠標(biāo)的位置減去鼠標(biāo)相對(duì)元素的位置,得到元素的位置       let left = e.clientX - disX;       let top = e.clientY - disY;       //綁定元素位置到positionX和positionY上面       this.positionX = top;       this.positionY = left;       //移動(dòng)當(dāng)前元素       odiv.style.left = left + 'px';       odiv.style.top = top + 'px';      };      document.onmouseup = (e) => {       document.onmousemove = null;       document.onmouseup = null;      };     }   }  }</script><style scoped lang="less"> .view{  position: absolute;  top: 0;  bottom: 0;  left: 0;  right: 0;  background: #f8f8f8;  .x{   width: 250px;   height: 50px;   top: 50px;   left: 10px;   position: absolute;   background: red;   color: yellow;  } }</style>

一個(gè)簡(jiǎn)單的demo,后續(xù)用的話可以再豐富,比如以拖動(dòng)長(zhǎng)度來觸發(fā)事件。

input可以換成子組件。這里提供分享一個(gè)底層的實(shí)現(xiàn)方式

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯(cuò)新站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 南涧| 洪江市| 宁晋县| 鄂温| 平和县| 兴仁县| 滦平县| 乌拉特中旗| 柘城县| 宁安市| 巴南区| 彰化市| 汉川市| 邯郸县| 仪征市| 日喀则市| 宝清县| 沂水县| 天门市| 广东省| 公安县| 崇州市| 册亨县| 和林格尔县| 新乐市| 望谟县| 旅游| 昌乐县| 白银市| 乌恰县| 平江县| 勃利县| 洞头县| 栾城县| 航空| 博乐市| 肥城市| 宝坻区| 札达县| 长寿区| 宁晋县|