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

vue中的可拖拽寬度div的實(shí)現(xiàn)示例

 更新時(shí)間:2022年04月08日 09:45:03   作者:李劍一  
本文主要介紹了vue中的可拖拽寬度div的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

主要思路

  • 在需要拖拽寬度的區(qū)域設(shè)置一個(gè)div,高度設(shè)為 100%,寬度盡量窄一些(也不要太窄,3~6px左右)
  • 在此div上綁定當(dāng)“鼠標(biāo)按下”時(shí),觸發(fā)document綁定“鼠標(biāo)移動(dòng)”方法和"鼠標(biāo)抬起"方法
  • 通過鼠標(biāo)移動(dòng)方法不斷獲取當(dāng)前鼠標(biāo)位置,設(shè)置需要變化大小div的寬高。
  • 鼠標(biāo)抬起時(shí)取消鼠標(biāo)移動(dòng)方法和鼠標(biāo)抬起方法的綁定。
<template>
? <div class="container" id="content_box">
? ? <div class="tab">左側(cè)Tab</div>
? ? <div class="menu" ref="menu">
? ? ? 左側(cè)菜單
? ? ? <div class="menu-resize" ref="menuResize"></div>
? ? </div>
? ? <div class="content">
? ? ? 中心區(qū)域
? ? ? <div class="opera" ref="opera">
? ? ? ? <div class="opera-resize" ref="operaResize"></div>
? ? ? ? 操作區(qū)域
? ? ? </div>
? ? </div>
? </div>
</template>

<script>
export default {
? name: "dropWidth",
? mounted() {
? ? this.$nextTick(() => {
? ? ? this.dropSize();
? ? })
? },
? methods: {
? ? dropSize() {
? ? ? let that = this,
? ? ? ? ? menuWidth = 200,
? ? ? ? ? operaHeight = 200;
? ? ? this.$refs.menuResize.onmousedown = function () {
? ? ? ? document.onmousemove = function (e) {
? ? ? ? ? let clientX = e.clientX;
? ? ? ? ? // 最大寬度
? ? ? ? ? if(clientX>=330){
? ? ? ? ? ? clientX = 330;
? ? ? ? ? }
? ? ? ? ? // 最小寬度
? ? ? ? ? if(clientX<=230){
? ? ? ? ? ? clientX = 230;
? ? ? ? ? }
? ? ? ? ? // TODO 這里減的是最左側(cè)tab的寬度
? ? ? ? ? menuWidth = clientX - 30;
? ? ? ? ? that.$refs.menu.style.width = clientX - 30 +"px";
? ? ? ? }

? ? ? ? document.onmouseup = function () {
? ? ? ? ? console.log('當(dāng)前寬度', menuWidth);
? ? ? ? ? document.onmousemove = null;
? ? ? ? ? document.onmouseup = null;
? ? ? ? ? that.releaseCapture && that.releaseCapture()
? ? ? ? }
? ? ? }

? ? ? this.$refs.operaResize.onmousedown = function () {
? ? ? ? document.onmousemove = function (e) {
? ? ? ? ? let clientY = e.clientY;
? ? ? ? ? console.log(clientY)
? ? ? ? ? // 最大寬度
? ? ? ? ? if(clientY<=100){
? ? ? ? ? ? clientY = 100;
? ? ? ? ? }
? ? ? ? ? // 最小寬度
? ? ? ? ? if(clientY>=300){
? ? ? ? ? ? clientY = 300;
? ? ? ? ? }
? ? ? ? ? operaHeight = clientY;
? ? ? ? ? // TODO 這里需要取反向
? ? ? ? ? that.$refs.opera.style.height = 400 - clientY +"px";
? ? ? ? }

? ? ? ? document.onmouseup = function () {
? ? ? ? ? console.log('當(dāng)前寬度', operaHeight);
? ? ? ? ? document.onmousemove = null;
? ? ? ? ? document.onmouseup = null;
? ? ? ? ? that.releaseCapture && that.releaseCapture()
? ? ? ? }
? ? ? }
? ? }
? }
}
</script>

<style scoped>
.container {
? width: 1000px;
? height: 400px;
? border: 2px solid #dddddd;

? display: flex;
? justify-content: center;
}

.tab {
? width: 30px;
? height: 100%;
? background-color: #EC8C32;

? flex-shrink: 0;
? flex-grow: 0;
}

.menu {
? width: 200px;
? background-color: #AAB6E0;

? flex-shrink: 0;
? flex-grow: 0;
? position: relative;
}

.content {
? width: 100%;
? position: relative;
}

.opera {
? width: 100%;
? height: 200px;
? position: absolute;
? bottom: 0;
? background-color: #F2BE25;
}

.menu-resize {
? width: 5px;
? height: 100%;

? position: absolute;
? top: 0;
? right: 0;
? cursor: col-resize;
}

.opera-resize {
? width: 100%;
? height: 5px;
? position: absolute;
? top: 0;
? left: 0;
? cursor: row-resize;
}
</style>

實(shí)現(xiàn)效果

到此這篇關(guān)于vue中的可拖拽寬度div的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)vue 可拖拽寬度div內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue對Element中的el-tag添加@click事件無效的解決

    Vue對Element中的el-tag添加@click事件無效的解決

    本文主要介紹了Vue對Element中的el-tag添加@click事件無效的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 解決vue請求接口第一次成功,第二次失敗問題

    解決vue請求接口第一次成功,第二次失敗問題

    這篇文章主要介紹了解決vue請求接口第一次成功,第二次失敗問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 解決vue 引入子組件報(bào)錯(cuò)的問題

    解決vue 引入子組件報(bào)錯(cuò)的問題

    今天小編就為大家分享一篇解決vue 引入子組件報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue組件data函數(shù)的具體使用

    Vue組件data函數(shù)的具體使用

    在Vue組件中,data函數(shù)用于定義組件的數(shù)據(jù),本文主要介紹了Vue組件data函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • vue實(shí)現(xiàn)標(biāo)簽云效果的示例

    vue實(shí)現(xiàn)標(biāo)簽云效果的示例

    這篇文章主要介紹了vue實(shí)現(xiàn)標(biāo)簽云效果的示例,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11
  • vue如何安裝使用Quill富文本編輯器

    vue如何安裝使用Quill富文本編輯器

    這篇文章主要為大家詳細(xì)介紹了vue如何安裝使用Quill富文本編輯器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Vue.js每天必學(xué)之組件與組件間的通信

    Vue.js每天必學(xué)之組件與組件間的通信

    Vue.js每天必學(xué)之組件與組件間的通信,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vscode jsconfig.json 使用簡介

    vscode jsconfig.json 使用簡介

    通過jsconfig.json文件定義一個(gè)JavaScript項(xiàng)目,目錄中是否存在此類文件表示該目錄是JavaScript項(xiàng)目的根目錄,文件本身可以選擇列出屬于項(xiàng)目的文件,要從項(xiàng)目中排除的文件以及編譯器選項(xiàng),這篇文章主要介紹了vscode jsconfig.json 使用說明,需要的朋友可以參考下
    2023-09-09
  • Vue生命周期介紹和鉤子函數(shù)詳解

    Vue生命周期介紹和鉤子函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Vue生命周期介紹和鉤子函數(shù)的相關(guān)資料,對大家學(xué)習(xí)或者使用vue2具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨小編一起來看看吧
    2021-10-10
  • vue中復(fù)用vuex.store對象的定義

    vue中復(fù)用vuex.store對象的定義

    這篇文章主要介紹了vue中復(fù)用vuex.store對象的定義,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

青浦区| 新绛县| 南雄市| 舞钢市| 唐山市| 新宾| 马鞍山市| 辰溪县| 大足县| 铜山县| 乌鲁木齐县| 东乡| 墨玉县| 万州区| 黄大仙区| 安泽县| 巫溪县| 沁源县| 辰溪县| 安岳县| 贵南县| 龙门县| 繁昌县| 隆子县| 蒲江县| 台东县| 长兴县| 临朐县| 申扎县| 区。| 汪清县| 延津县| 舞阳县| 丰镇市| 新兴县| 灵宝市| 榆树市| 客服| 茌平县| 城步| 开鲁县|