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

首頁 > 語言 > JavaScript > 正文

VUE實現可隨意拖動的彈窗組件

2024-05-06 15:29:32
字體:
來源:轉載
供稿:網友

背景:項目需要,我們引入了前端框架就是目前最流行的框架之一vue,同時引入了一套由餓了嗎維護的ui庫,由于我們是在pc端使用發現它竟然沒有提供可隨意拖動的窗口,可能用的更多的時移動端吧吧,于是就隨手寫了一個,比較簡單吧,但是做過的就會知道也是有一些小小的技巧,記錄下吧留作備用。

由于不是很難,就不做過多解釋了,直接上代碼:

<template> <el-container v-bind:id="id"        v-if="dialogVisible">  <el-header>   <div @mousedown="mousedown">    <h2 v-html="title"></h2>    <div @click.stop="closeDialog()" style="position: absolute;top: 0px; right: 20px;">    <span>     <svg class="icon" aria-hidden="false">      <use xlink:href='#el-icon-ext-close'></use>     </svg>    </span>    </div>   </div>  </el-header>  <el-main>   <slot>這里是內容</slot>  </el-main>  <el-footer>   <span class="dialog-footer">    <el-button @click="closeDialog">取 消</el-button>    <el-button type="primary" @click="closeDialog">確 定</el-button>   </span>  </el-footer> </el-container></template><script> export default {  name: 'Window',  props: {   titlex: String,   id: [String, Number]  },  data() {   return {    title: '標題',    selectElement: ''   }  },  computed: {   dialogVisible: {    get: function () {     return this.$store.state.dialogVisible    },    set: function (newValue) {     this.$store.commit('newDialogVisible', newValue)    }   }  },  methods: {   closeDialog(e) {    this.dialogVisible = false    // alert(this.dialogVisible)    this.$store.commit('newDialogVisible', false)   },   mousedown(event) {    this.selectElement = document.getElementById(this.id)    var div1 = this.selectElement    this.selectElement.style.cursor = 'move'    this.isDowm = true    var distanceX = event.clientX - this.selectElement.offsetLeft    var distanceY = event.clientY - this.selectElement.offsetTop    // alert(distanceX)    // alert(distanceY)    console.log(distanceX)    console.log(distanceY)    document.onmousemove = function (ev) {     var oevent = ev || event     div1.style.left = oevent.clientX - distanceX + 'px'     div1.style.top = oevent.clientY - distanceY + 'px'    }    document.onmouseup = function () {     document.onmousemove = null     document.onmouseup = null     div1.style.cursor = 'default'    }   }  } }</script><style scoped> .el-container {  position: absolute;  height: 500px;  width: 500px;  border: 1px;  top: 20%;  left: 35%;  border-radius: 2px; } .dialog-footer {  text-align: right; } .el-main {  background-color: white; } .el-footer {  background-color: white; } .el-header {  background-color: white;  color: #333;  line-height: 60px; } .el-aside {  color: #333; }</style>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 海林市| 保定市| 罗源县| 铁岭市| 望都县| 龙山县| 苏尼特右旗| 临颍县| 绥阳县| 囊谦县| 甘孜| 栾川县| 兴宁市| 茂名市| 宁明县| 祁阳县| 宁海县| 绥化市| 旬邑县| 临泉县| 西吉县| 东宁县| 和林格尔县| 蓬安县| 甘肃省| 平乡县| 伽师县| 台南市| 新沂市| 新干县| 丹阳市| 尼勒克县| 图木舒克市| 双柏县| 柘城县| 天镇县| 淮阳县| 舟山市| 东平县| 四会市| 宿州市|