vue實現(xiàn)右鍵菜單欄
更新時間:2022年04月10日 07:50:04 作者:-=|=-
這篇文章主要為大家詳細介紹了vue實現(xiàn)右鍵菜單欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了vue實現(xiàn)右鍵菜單欄的具體代碼,供大家參考,具體內容如下
vue實現(xiàn)右鍵菜單欄和原生js大同小異,都是需要明白兩個點
1.contextmenu事件是鼠標的右鍵點擊事件
2.要阻止瀏覽器的默認右鍵事件
代碼如下
// methods
rightShow() {
?? ?let menu = this.$refs.msgRightMenu
?? ?this.isPersoncontextMenus = true
?? ?var evt = event || window.event;
?? ??? ?var clientWidth = document.documentElement.clientWidth || document.body.clientWidth ;
?? ??? ?var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
?? ?
?? ??? ?var clientHeight = document.documentElement.clientHeight || document.body.clientHeight ;
?? ??? ?var scrollTop = document.documentElement.scrollTop || document.body.scrollTop ;
?? ?
?? ??? ?//給left和top分別賦值為鼠標的位置;
?? ??? ?menu.style.left = evt.pageX+"px";
?? ??? ?menu.style.top = evt.pageY+"px";
?? ??? ?//如果鼠標右邊放不下菜單,就把left的值的改了
?? ??? ?if(evt.pageX+100>clientWidth+scrollLeft){//菜單應該在鼠標左邊;
?? ??? ??? ?var left1 = evt.pageX-100;
?? ??? ??? ?menu.style.left = left1+"px";
?? ??? ?}
?? ??? ?//如果鼠標下邊放不下菜單,就把top的值的改了
?? ??? ?if(evt.pageY+100>clientHeight+scrollTop){
?? ??? ??? ?var top1 = (evt.pageY-100);
?? ??? ??? ?menu.style.top = top1+"px";
?? ??? ?}
?? ?
?? ??? ?menu.style.display = "block";
},
showNo(){
?? ?let menu = this.$refs.msgRightMenu
?? ?menu.style.display = "none";
}//css樣式直供參考,根據(jù)自己的需要寫樣式
#menu{
?? ?list-style: none;
?? ?margin: 0px;
?? ?padding: 0px;
?? ?position: absolute;
?? ?display: none;
?? ?width: 100px;
?? ?height: 100px;
?? ?background-color: gray;
}
#menu li{
?? ?margin: 0px;
?? ?padding: 0px;
}//html <div @click.self="showNo">//這個是最外層的盒子,加self修飾符可以不與其他事件沖突 ?? ??? ?<input type="text" @contextmenu.prevent="rightShow">?? ?//這里的prevent修飾符可以直接阻止瀏覽器的默認行為 ?? ??? ??? ?<ul id="menu" ref="msgRightMenu" v-show="isPersoncontextMenus">//isPersoncontextMenus別忘了在data里定義這個變量 ?? ??? ??? ??? ?<li>魚香肉絲</li> ?? ??? ??? ??? ?<li>醋溜土豆絲</li> ?? ??? ??? ??? ?<li>麻辣小龍蝦</li> ?? ??? ??? ??? ?<li>回鍋肉</li> ?? ??? ??? ?</ul> </div>
效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vuex 動態(tài)注冊方法 registerModule的實現(xiàn)
這篇文章主要介紹了vuex 動態(tài)注冊方法 registerModule的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
在vue項目中(本地)使用iconfont字體圖標的三種方式總結
這篇文章主要介紹了在vue項目中(本地)使用iconfont字體圖標的三種方式總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
vue-quill-editor富文本編輯器上傳視頻功能詳解
需求需要實現(xiàn)富文本的功能,同時富文本中還可以上傳視頻和圖片,選來選去最后決定了用這個富文本編輯器,下面這篇文章主要給大家介紹了關于vue-quill-editor富文本編輯器上傳視頻功能的相關資料,需要的朋友可以參考下2023-05-05

