最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)拖拽窗口功能

 更新時間:2022年04月08日 13:33:40   作者:橡皮擦不掉的  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)拖拽窗口功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue拖拽窗口簡單實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下

效果

實(shí)現(xiàn)代碼

<template>
? <transition>
? ? <!-- ? ?綁定style中top和left-->
? ? <div class="moveBox" :style="position" v-show="show">
? ? ? <div
? ? ? ? class="moveHead"
? ? ? ? @mousedown="mousedown"
? ? ? ? @mousemove="mousemove"
? ? ? ? @mouseup="mouseup"
? ? ? ? @mouseleave="mousemove"
? ? ? ></div>
? ? ? <!-- ? ? ?關(guān)閉按鈕-->
? ? ? <div class="close" @click="toggleShow">×</div>
? ? ? <div class="content">
? ? ? ? <!--插槽-->
? ? ? ? <slot></slot>
? ? ? </div>
? ? </div>
? </transition>
</template>

<script>
export default {
? name: "moveBox",
? data() {
? ? return {
? ? ? show: true,//是否顯示
? ? ? x: 100,//left:x
? ? ? y: 50,//top:y
? ? ? leftOffset: 0,//鼠標(biāo)距離移動窗口左側(cè)偏移量
? ? ? topOffset: 0,//鼠標(biāo)距離移動窗口頂部偏移量
? ? ? isMove: false,//是否移動標(biāo)識
? ? };
? },
? computed: {
? ? //top與left加上px
? ? position() {
? ? ? return `top:${this.y}px;left:${this.x}px;`;
? ? },
? },
? methods: {
? ? //控制打開關(guān)閉
? ? toggleShow() {
? ? ? this.x = 100;
? ? ? this.y = 50;
? ? ? this.show = !this.show;
? ? },
? ? mousedown(event) {
? ? ? //鼠標(biāo)按下事件
? ? ? this.leftOffset = event.offsetX;
? ? ? this.topOffset = event.offsetY;
? ? ? this.isMove = true;
? ? },
? ? //鼠標(biāo)移動
? ? mousemove(event) {
? ? ? if (!this.isMove) {
? ? ? ? return;
? ? ? }
? ? ? this.x = event.clientX - this.leftOffset;
? ? ? this.y = event.clientY - this.topOffset;
? ? },
? ? //鼠標(biāo)抬起
? ? mouseup() {
? ? ? this.isMove = false;
? ? },
? },
};
</script>

<style lang="less" scoped>
.moveBox {
? width: 500px;
? height: 300px;
? position: fixed;
? box-shadow: 0 0 5px 3px #95a5a6;
? .moveHead {
? ? height: 30px;
? ? background-color: #bdc3c7;
? ? cursor: move;
? }
? .close {
? ? position: absolute;
? ? right: 0;
? ? top: 0;
? ? line-height: 30px;
? ? font-size: 24px;
? ? cursor: pointer;
? ? display: block;
? ? width: 30px;
? ? height: 30px;
? ? text-align: center;
? }
}
.v-enter,
.v-leave-to {
? opacity: 0;
? transform: scale(0.5);
}
.content {
? padding: 10px;
}
.v-enter-active,
.v-leave-active {
? transition: all 0.5s ease;
}
</style>

使用

<template>
? <div class="home">
? ? <button @click="$refs.moveBox.toggleShow()">toggle moveBox</button>
? ? <move-box ref="moveBox">
? ? ? Hello World
? ? </move-box>
? </div>
</template>

代碼沒什么難度,主要是使用了定位,在鼠標(biāo)移動事件中定義top和left值。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • elementUI select組件默認(rèn)選中效果實(shí)現(xiàn)的方法

    elementUI select組件默認(rèn)選中效果實(shí)現(xiàn)的方法

    這篇文章主要介紹了elementUI select組件默認(rèn)選中效果實(shí)現(xiàn)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue自定義可選時間的日歷組件

    vue自定義可選時間的日歷組件

    這篇文章主要為大家詳細(xì)介紹了vue自定義可選時間的日歷組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring boot 和Vue開發(fā)中CORS跨域問題解決

    Spring boot 和Vue開發(fā)中CORS跨域問題解決

    這篇文章主要介紹了Spring boot 和Vue開發(fā)中CORS跨域問題解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 基于javascript的拖拽類封裝詳解

    基于javascript的拖拽類封裝詳解

    這篇文章主要介紹了基于javascript的拖拽類封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 使用element-ui table expand展開行實(shí)現(xiàn)手風(fēng)琴效果

    使用element-ui table expand展開行實(shí)現(xiàn)手風(fēng)琴效果

    這篇文章主要介紹了使用element-ui table expand展開行實(shí)現(xiàn)手風(fēng)琴效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • element-ui tooltip修改背景顏色和箭頭顏色的實(shí)現(xiàn)

    element-ui tooltip修改背景顏色和箭頭顏色的實(shí)現(xiàn)

    這篇文章主要介紹了element-ui tooltip修改背景顏色和箭頭顏色的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • nextTick能否獲取到最新dom原理解析

    nextTick能否獲取到最新dom原理解析

    這篇文章主要為大家介紹了nextTick能否獲取到最新dom原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • vue中mixins的工具的封裝方式

    vue中mixins的工具的封裝方式

    這篇文章主要介紹了vue中mixins的工具的封裝方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue?data中的return使用方法示例

    vue?data中的return使用方法示例

    當(dāng)一個組件被定義,data必須聲明為返回一個初始數(shù)據(jù)對象的函數(shù),因?yàn)榻M件可能被用來創(chuàng)建多個實(shí)例,下面這篇文章主要給大家介紹了關(guān)于vue?data中return使用,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Vue3.5中響應(yīng)式Props解構(gòu)的編譯原理

    Vue3.5中響應(yīng)式Props解構(gòu)的編譯原理

    在Vue3.5版本中,響應(yīng)式Props的解構(gòu)功能正式轉(zhuǎn)正,該功能允許即使在解構(gòu)后也不丟失響應(yīng)性,文通過編譯階段的處理,如何保持解構(gòu)后的props變量仍保持響應(yīng)性,編譯過程中的defineProps宏函數(shù)處理,通過AST和上下文操作實(shí)現(xiàn)變量替換,從而讓解構(gòu)后的變量在運(yùn)行時維持響應(yīng)式狀態(tài)
    2024-09-09

最新評論

分宜县| 隆回县| 大名县| 全州县| 永清县| 洛浦县| 阆中市| 临洮县| 磴口县| 拜城县| 新密市| 榆中县| 淮阳县| 望谟县| 巴楚县| 英吉沙县| 阿尔山市| 永嘉县| 太谷县| 紫金县| 忻城县| 米林县| 永济市| 浙江省| 松江区| 高雄县| 开平市| 蓬莱市| 乌拉特中旗| 慈利县| 万安县| 大同县| 阜新| 怀化市| 利辛县| 明溪县| 三河市| 阿克| 鹤壁市| 凤城市| 庆云县|