vue實(shí)現(xiàn)拖拽滑動(dòng)分割面板
本文實(shí)例為大家分享了vue實(shí)現(xiàn)拖拽滑動(dòng)分割面板的具體代碼,供大家參考,具體內(nèi)容如下
需求背景
左邊是列表,右邊是詳情。 想更大范圍的查看詳情,所以要拖拽滑塊,進(jìn)行面板的分割
整體思路
- 在布局上,采用flex布局,單位采用百分比。設(shè)置flex:1,讓其自動(dòng)伸縮
- 滑動(dòng)滑塊,計(jì)算滑塊在滑動(dòng)過程中,占整個(gè)頁面的百分比
- 將百分比,通過動(dòng)態(tài)樣式賦值給列表頁的寬度
- 同時(shí)改變滑塊的位置(也是百分比形式)
- 其次就是在vue里對(duì)鼠標(biāo)事件的使用
代碼實(shí)現(xiàn)
在template里 寫事件
@mousedown.prevent="mousedown"
在methods里寫方法
/**
? ? ?* 按下鼠標(biāo)
? ? ?*/
? ? ? mousedown() {
? ? ? ? document.addEventListener('mousemove', this.handleMouseMove, false);
? ? ? ? document.addEventListener('mouseup', this.handleMouseUp, false);
? ? },
? ? /**
? ? ?* 按下滑動(dòng)器,移動(dòng)鼠標(biāo)
? ? ?*/
? ? handleMouseMove(e) {
? ? ? /**
? ? ? ?* 計(jì)算容器總寬度
? ? ? ?* 計(jì)算滑塊到左邊的距離
? ? ? ?* 計(jì)算偏移百分比: (滑塊距離左邊的距離 / 頁面寬度) * 100
? ? ? ?* 傳遞移動(dòng)百分比和距左邊的距離
? ? ? ?*/
? ? ? const clientRect = this.$refs.mainContent.getBoundingClientRect();
? ? ? const offset = e.pageX;
? ? ? const panelPercent = (offset / clientRect.width) * 100;
? ? ? this.panelPercent = panelPercent;
? ? ? this.mainContentWidth = offset;
? ? ? this.$refs.imgMove.style.left = panelPercent + '%';
? ? ? console.log('拖動(dòng)中', this.panelPercent);
? ? },
? ? /**
? ? ?* 松開滑動(dòng)器
? ? ?*/
? ? handleMouseUp () {
? ? ? document.removeEventListener('mousemove', this.handleMouseMove, false);
? ? },對(duì)邊界處理
if (this.panelPercent < this.min) {
? ? ? ? this.panelPercent = this.min
? ? ? }
? ? ? if (this.panelPercent > this.max) {
? ? ? ? this.panelPercent = this.max
}以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3 中的數(shù)據(jù)偵測的實(shí)現(xiàn)
這篇文章主要介紹了Vue3 中的數(shù)據(jù)偵測的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Vue3?通過作用域插槽實(shí)現(xiàn)樹形菜單嵌套組件
這篇文章主要為大家介紹了Vue3?通過作用域插槽實(shí)現(xiàn)樹形菜單嵌套組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
vue3+elementPlus實(shí)現(xiàn)年份選擇器
這篇文章主要為大家詳細(xì)介紹了vue3如何通過elementPlus實(shí)現(xiàn)一個(gè)簡單的年份選擇器,文中的示例代碼講解詳細(xì),需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
Vue使用Element-UI實(shí)現(xiàn)分頁效果全過程
element-ui官網(wǎng)上有分頁實(shí)現(xiàn)的功能,簡單方便又好用,也有很多分頁的樣式,你可以根據(jù)需要去選擇自己想要的樣式,下面這篇文章主要給大家介紹了關(guān)于Vue使用Element-UI實(shí)現(xiàn)分頁效果的相關(guān)資料,需要的朋友可以參考下2023-04-04
解決vite.config.js無法使用__dirname的問題
這篇文章主要介紹了解決vite.config.js無法使用__dirname的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10

