欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

vue自定義右鍵樣式的實例代碼

最近用python寫了個小說程序的api,想著用 vue 做個系統(tǒng)管理數(shù)據(jù),腦子里出現(xiàn)的是這個畫面:

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的沙坡頭網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

vue 自定義右鍵樣式的實例代碼 

但是這種樣式的管理后臺已經(jīng)做了太多了,已經(jīng)審美疲勞,后面又想了一種類操作系統(tǒng)的UI界面:

vue 自定義右鍵樣式的實例代碼

主要是靠 雙擊右鍵 來操作,可操作多個模態(tài)框,跟操作 windows 類似,接下來在里面拆出一個功能塊來寫一篇文章,就是 自定義系統(tǒng)默認的右鍵 。

自定義右鍵操作有五個步驟: 阻止 默認右鍵。 獲取當前右鍵點擊時的 x / y 坐標,及 id 。 自定義右鍵菜單樣式及內(nèi)容,定位在指定的位置后顯示。 返回對應點擊目錄的事件如: 查看刪除 、 編輯 。 在任何地方點擊左鍵時 隱藏右鍵菜單 。 關(guān)鍵方法:

@contextmenu.prevent

這個是vue內(nèi)置的,點擊右鍵(阻止默認右鍵的默認行為)的一個回調(diào)方法,他返回了一大串東西這里我用到的是這兩個(用于定位顯示菜單的x,y位置)

vue 自定義右鍵樣式的實例代碼

x_index , y_index 是儲存在 data 中的,用于定位模態(tài)框位置。

ctrlId 用于給接口處理的依據(jù)

showMenu 用于判斷是否顯示右鍵菜單

<!--template-->
<ul>
  <li class="role_list" 
	v-for="(item,index) in role" 
	:key="index"
	@contextmenu.prevent="(e)=>{
		x_index = e.layerX;
	    y_index = e.layerY;
		ctrlId = item.id;
		showMenu = true;
	}">
	  <img :src="item.head_portrait" alt="">
	  <p>{{item.name}}</p>
	</li>
</ul>

需要的參數(shù)(x,y,id)都具備了,因為右鍵操作很多地方都用到了,所以封裝成了一個組件

right_menu.vue 組件代碼 參數(shù)名 注釋 x x坐標 y y坐標 showMenu 顯示狀態(tài)

參數(shù)名注釋
xx坐標
yy坐標
showMenu顯示狀態(tài)

組件使用

<template>
  <div class="modal_data_box">
    <ul>
      <li class="role_list" 
        v-for="(item,index) in role" 
        :key="index"
        @contextmenu.prevent="(e)=>{
          x_index = e.layerX;
          y_index = e.layerY;
          ctrlId = item.id;
          showMenu = true;
        }">
        <img :src="item.head_portrait" alt="">
        <p>{{item.name}}</p>
      </li>
    </ul>
	<!--組件-->
	<right-menu :x="x_index"
	      :y="y_index" 
	      :showMenu="showMenu"
	      @close="closeMenu"
	      @open="openDetail"
	      @del="delAttr"
	      @update="updateArr">
	</right-menu>
  </div>
</template>
<script>
  // 導入組件
	import rightMenu from '../module/right_menu.vue';
	export default{
		name:"roleModal",
		components:{rightMenu},
		data(){
			return {
				x_index:0,
				y_index:0,
				ctrlId:'',
				showMenu:false,
				role:[],
			}
		},
		methods:{
		  //關(guān)閉回調(diào) 
		  closeMenu(state){
		    console.log('關(guān)閉')
		    this.showMenu = state;
		  },
		  //打開詳情回調(diào) 			
		  openDetail(){
		    console.log('編輯')
		  },
		  //刪除回調(diào) 			
		  delAttr(){
		    console.log('刪除')
		  },
		  //編輯回調(diào) 			
		  updateArr(){
		    console.log('編輯')
		  },
		}
	}
</script>

修復漏洞

d[o_0]b同學發(fā)現(xiàn)了一個漏洞,就是當鼠標在屏幕右邊點擊時,菜單會被遮擋住,這邊做了一些調(diào)整。

修復前:

vue 自定義右鍵樣式的實例代碼

//原來的代碼
<ul>
  <li class="role_list" 
	v-for="(item,index) in role" 
	:key="index"
	@contextmenu.prevent="(e)=>{
		x_index = e.layerX;
	    y_index = e.layerY;
		ctrlId = item.id;
		showMenu = true;
	}">
	  <img :src="item.head_portrait" alt="">
	  <p>{{item.name}}</p>
	</li>
</ul>

修復后:

vue 自定義右鍵樣式的實例代碼

//修改后的代碼,(由于要判斷,所以單獨寫了個方法,把e跟item都傳過去)
<ul>
	<li class="role_list" 
		v-for="(item,index) in role" 
		:key="index"
		@contextmenu.prevent="(e)=>{
			rightClick(e,item)
		}">
		<img :src="item.head_portrait" alt="">
		<p>{{item.name}}</p>
	</li>
</ul>

//對應的rightClick方法
rightClick(e,item){
	// 屏幕可見寬
	let clientWidth = document.body.clientWidth;
	// 菜單寬
	let menuWidth = 150;
	// 點擊右鍵時會返回對應的clientX,用這個值與(clientWidth+菜單寬度)對比,如果大于的話,就把菜單左偏移一個菜單寬
	let clickClientX = e.clientX + menuWidth
	if(clickClientX > clientWidth){
		console.log("菜單超出視線范圍")
		this.x_index = e.layerX - menuWidth;
	}else{
		this.x_index = e.layerX;
	}
	this.y_index = e.layerY;
	this.ctrlId = item.id;
	this.showMenu = true;
},

總結(jié)

以上所述是小編給大家介紹的vue 自定義右鍵樣式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

分享題目:vue自定義右鍵樣式的實例代碼
當前URL:http://aaarwkj.com/article48/ipochp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導航、商城網(wǎng)站全網(wǎng)營銷推廣、移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
激情男女一区二区三区| 九九热精品只有这里有| 91国内偷拍富婆国内精品对白| 中文字幕一区二区精品人妻| av影片免费网址大全| av基地蜜桃蜜桃蜜桃| 日韩精品一区二区三区夜色| 亚洲国产熟女一区二区三| 国产一区二区三区av在线播放| 国产亚洲中文字幕91| 欧美黄片视频免费观看| 国产一区二区日韩一区| 日本一区二区三区加勒比| 亚洲国产日韩精品久久| 传媒精品视频在线观看| 日韩欧美二区三区在线| 国产一区二区三区精品久久| 香蕉夜夜草草久久亚洲香蕉 | 亚洲精品熟女国产国产老熟女| 成年自拍视频在线观看| 日本黄色三级三级三级| 亚洲av第一区综合激情久久久| 精品欧美高清免费视频| 91精品国产高清一区二区性色| 美女丝袜美腿魅惑男人| 97久久久人妻精品一区| 精品人妻少妇免费久久蜜臀av| 久久国产精品一区二区三区| 久久亚洲一区二区麻豆偷| 色哟哟国产精品一区自拍| 欧美精品亚洲二区中文乱码| 色婷婷精品一区二区三区| 日产中文乱码字幕无线观看| 欧美在线免费黄片视频| 国产亚洲精品久久综合阿香| 内射极品美女在线观看| 就去吻色综合一二三四| 日韩在线视频 一区二区三区| 人妻中字幕出轨中文字幕| 色偷拍亚洲偷自拍二区| 欧美一区二区国产精品日韩|