日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

uni-app低成本封裝一個取色器組件的簡單方法

瀏覽:325日期:2022-06-01 10:48:10

在uni-ui中找不到對應的工具

后面想想也是 移動端取色干什么?

沒辦法 也掛不住特殊需求

因為去應用市場下載 這總東西 又不是很有必要

那么 下面這個組件或許能解決您的煩惱

<template>	<view>		<view>			<view id="colorBg" @touchstart="startTouch" @touchmove="moveIng"				@touchend="endTouch">				<view :catchtouchmove="true" @c.stop="()=>{}" :style=""transform:rotate(" +degrees +"deg)""></view>				<view :style=""color:"+getColorByDeg(this.degrees)">拖轉輪播取色</view>			</view>			<view>				<button @click.stop = "close" type="default">取消</button>				<button @click.stop = "readColor" type="default">確認</button>			</view>		</view>	</view></template><script>	export default {		data() {			return {				pointerShow: true,				colorPanWidth: 20,				colorPanRadius: 0,				pointerBox: {},				degrees: 0			}		},		mounted() {			uni.getSystemInfo({				success: (res) => {					uni.createSelectorQuery().select("#colorBg").boundingClientRect((rect) => {						this.pointerBox = rect					}).exec()					this.colorPanRadius = res.screenWidth * 0.4				}			})		},		methods: {			close(){this.$emit("close");			},			readColor(){				let colro = this.getColorByDeg(this.degrees);				this.$emit("change",colro);			},    rbg2Hex(r, g, b) {return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);    },    calculationScheme(deg) {      deg = 360- deg + 120		      const r = Math.round(Math.sin((deg * 2 * Math.PI) / 360) * 255)		      const g = Math.round(Math.sin(((deg + 120) * 2 * Math.PI) / 360) * 255)		      const b = Math.round(Math.sin(((deg + 240) * 2 * Math.PI) / 360) * 255)      return this.colorRgbToHex(`rgb(${r},${g},${b})`);    },			startTouch(e) {				const {					pageX,					pageY				} = e.touches[0]				this.rotatePointer(pageX, pageY)			},			endTouch(e) {				const {					pageX,					pageY				} = e.changedTouches[0]				this.rotatePointer(pageX, pageY)			},			moveIng(e) {				const {					pageX,					pageY				} = e.touches[0]				this.rotatePointer(pageX, pageY)			},			rotatePointer(pageX = 0, pageY = 0) {				const {					pointerBox,					colorPanWidth				} = this				const mouseX = pageX - colorPanWidth				const mouseY = pageY - colorPanWidth				var centerY = pointerBox.top + (pointerBox.height / 2) - 0,					centerX = pointerBox.left + (pointerBox.height / 2) - 0,					radians = Math.atan2(mouseX - centerX, mouseY - centerY)				this.degrees = (radians * (180 / Math.PI) * -1) + 180;			},		     getColorByDeg(deg) {		      deg = 360- deg + 120		      const r = Math.round(Math.sin((deg * 2 * Math.PI) / 360) * 255)		      const g = Math.round(Math.sin(((deg + 120) * 2 * Math.PI) / 360) * 255)		      const b = Math.round(Math.sin(((deg + 240) * 2 * Math.PI) / 360) * 255)		      return `rgb(${r},${g},${b})`		    },			colorRgbToHex(rgbStr) {				const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8}|[0-9a-fA-f]{6}[0-9]{2})$/;				if (reg.test(rgbStr)) {					return rgbStr				} else {					const rgbArray = rgbStr.replace(/(?:\(|\)|rgba|rgb|RGBA|RGB)*/g, "").split(",");					let strHex = "#";					for (let i = 0; i < rgbArray.length; i++) {					if (i !== 3) {						if (rgbArray[i] == "0") {						    strHex += "00"						} else {						    let newItem =Number(rgbArray[i]).toString(16)						if (newItem.length < 2){							newItem = "0" + newItem						}						    strHex += newItem						}							} else {						strHex += rgbArray[i] == "0" ? "" : Number(rgbArray[i]) * 100					}					}					return strHex;				}			}		}	}</script><style>	.dialog {		display: block;		border-radius: 30rpx;		background-color: #303030;		margin: 20rpx;		padding: 30rpx;	}	.flex {		display: flex;		justify-content: space-between;	}	.colorBg {		width: 80vw;		height: 80vw;		margin: 5vw;		background: conic-gradient(red,				yellow,				lime,				aqua,				blue,				fuchsia,				red);		border-radius: 50%;		position: relative;		display: flex;		justify-content: center;		align-items: center;	}	.roundBuff {		width: 55vw;		height: 55vw;		-webkit-transform-origin: center 50%;		transform-origin: center 50%;		background: #303030;		border-radius: 50%;	}	.roundBuff::before {      content: "";      width: 15px;      height: 15px;	  background: #303030;      border: solid #303030;      border-width: 10px 10px 0 0;      transform: translate(-50%, -50%) rotate(-45deg);      position: absolute;      left: 50%;      top: 2%;}	.lee_btn {		background: #00000000;		color: #FFFFFF;		width: 36%;		height: 80rpx;		line-height: 70rpx;		text-align: center;		justify-content: center;		font-size: 30rpx;		border-radius: 50rpx;		border: 5rpx #FFFFFF solid;		font-weight: bold;		padding: 1px 20px;	}	.colorPan {		position: absolute;		color: #FFFFFF;	}</style>

直接將整個組件復制過去 接口使用

組件有兩個方法

  • change 當你點擊確定時觸發 返回 RGB 色碼
  • close 當你點擊取消時觸發

總結

到此這篇關于uni-app低成本封裝一個取色器組件的文章就介紹到這了,更多相關uni-app封裝取色器組件內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美激情另类| 久久成人亚洲| 日韩av午夜在线观看| 中文精品电影| 97久久中文字幕| 色综合视频一区二区三区日韩 | 久久国产精品久久w女人spa| 婷婷色综合网| 日韩视频在线一区二区三区 | 欧美日韩国产一区二区三区不卡| 91精品国产91久久久久久黑人| 日韩精品水蜜桃| 好吊一区二区三区| 亚洲深夜福利| 日韩黄色在线观看| 国产精品尤物| 在线天堂中文资源最新版| 国产一区二区三区网| 日韩欧美在线中字| 性色一区二区| 欧美精品三级在线| 中文在线а√在线8| 天堂成人国产精品一区| 国产精品超碰| 在线亚洲一区| 国产精品久久久久av蜜臀| 欧美日韩免费观看视频| 中文字幕日韩亚洲| 国产中文欧美日韩在线 | 亚洲深爱激情| 国产成人免费精品| 最新亚洲国产| 久久精品官网| 亚洲人成网77777色在线播放| 久久婷婷国产| 亚洲欧美专区| 欧美日韩在线网站| 日本国产一区| 在线一区视频| 久久久久国产精品一区二区| 日韩欧美久久| 国产精品丝袜xxxxxxx| 欧美成人a交片免费看| 欧美在线不卡| 亚洲精品护士| 噜噜噜久久亚洲精品国产品小说| 激情国产在线| 欧美黑人做爰爽爽爽| 午夜av一区| 久久一区二区三区电影| 日韩久久精品| 精品丝袜久久| 久久69成人| 欧美激情91| 久久免费影院| 麻豆精品少妇| 久久av综合| 久久中文字幕一区二区| 国产精品一二| 欧美91在线| 国产欧美日韩亚洲一区二区三区| 亚洲精品成人| 国产美女精品| 图片区亚洲欧美小说区| 激情欧美一区| 午夜国产精品视频| 伊人久久成人| 丝袜亚洲精品中文字幕一区| 夜夜精品视频| 日韩综合一区二区三区| 日韩av不卡一区二区| 国产亚洲观看| 久久精品国产亚洲一区二区三区| 美女久久久久久 | 少妇精品久久久| 久久精品凹凸全集| 欧美片第1页综合| 美女尤物国产一区| 国产色播av在线| 午夜国产欧美理论在线播放| 亚洲三级观看| 欧美国产视频| 日韩在线短视频| 亚洲欧美日韩国产综合精品二区| 视频一区中文字幕精品| av资源新版天堂在线| 色黄视频在线观看| 日韩中文字幕不卡| 精品一区av| 欧美国产91| 国产情侣一区| 国产96在线亚洲| 老鸭窝毛片一区二区三区| 91精品国产自产在线丝袜啪| 久久男人天堂| 日韩一区免费| 视频福利一区| 国产精品亚洲综合在线观看| 日韩成人亚洲| 国产精品一级在线观看| 天堂网在线观看国产精品| 久久字幕精品一区| 午夜天堂精品久久久久| 久久在线电影| 国产精品亚洲欧美日韩一区在线 | 欧美日韩精品一区二区三区在线观看| 国产一区调教| 日韩激情啪啪| 久久电影一区| 久久精品影视| 国产精品天堂蜜av在线播放| 美女毛片一区二区三区四区| 久久福利在线| 日本午夜精品久久久| 国产99亚洲| 中文字幕在线视频久| 国产欧美在线| 日韩av一二三| 欧美午夜三级| 日本午夜精品久久久| 婷婷精品在线| 蜜桃久久久久久| 中文一区在线| 麻豆久久精品| 色综合视频一区二区三区日韩 | 老色鬼久久亚洲一区二区| 日韩三区免费| 久久久久九九精品影院| **爰片久久毛片| 亚洲最新av| 亚洲一区导航| 日本va欧美va瓶| 久久激情av| 精品国内亚洲2022精品成人| 国产精品久久| 国产69精品久久| 蜜臀久久精品| 999国产精品永久免费视频app| 久久精品成人| 石原莉奈一区二区三区在线观看 | 日本不卡免费高清视频在线| 久久久国产精品网站| 亚洲综合电影| 美美哒免费高清在线观看视频一区二区| 日本亚洲欧美天堂免费| 精品一区二区三区中文字幕视频| 日韩不卡在线| 国产亚洲精品自拍| 日韩精品第二页| 日韩理论视频| 亚洲bt欧美bt精品777| 精品久久久网| 在线综合亚洲| 麻豆国产精品| 亚洲一区二区三区高清| 欧美日韩99| 深夜福利视频一区二区| 蜜桃av一区二区| 国产一区二区亚洲| 免费精品视频在线| 视频在线不卡免费观看| 国产精品日韩欧美一区| 国产精品永久| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品一区二区三区免费看| 亚洲一区欧美激情| 国产精品jk白丝蜜臀av小说| 亚洲二区免费| 国产精品777777在线播放| 国产一区日韩欧美| 精品日本视频| 亚洲图片久久| 99视频精品全部免费在线视频| 欧美日韩一区自拍| 丝袜国产日韩另类美女| 欧美日韩免费观看视频| 老色鬼精品视频在线观看播放| 免费人成在线不卡| 欧美国产91| 999精品色在线播放| 成人台湾亚洲精品一区二区 | 精品三级久久| 国产一区二区三区四区二区| 免费观看日韩电影| 国产麻豆久久| 日韩精品中文字幕第1页| 麻豆一区在线| 麻豆精品久久| 美女高潮久久久| 国产乱子精品一区二区在线观看| 亚洲一区二区小说| 伊人www22综合色| 蜜桃伊人久久| 免费一级片91| 日韩欧美高清一区二区三区| 亚洲精品少妇| 少妇精品在线| 香蕉久久国产| 色婷婷成人网| 免费在线观看视频一区|