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