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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

在uni-ui中找不到對應(yīng)的工具

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

沒辦法 也掛不住特殊需求

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

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

<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)">拖轉(zhuǎn)輪播取色</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>

直接將整個組件復(fù)制過去 接口使用

組件有兩個方法

  • change 當(dāng)你點擊確定時觸發(fā) 返回 RGB 色碼
  • close 當(dāng)你點擊取消時觸發(fā)

總結(jié)

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

標(biāo)簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av中文在线观看| 美女精品视频在线| 国产一区日韩欧美| 丝袜美腿亚洲色图| 欧美一区二区三区久久| 精品99在线| 午夜欧美精品| 日本不卡在线视频| 国模大尺度视频一区二区| 精品一区二区三区中文字幕 | 国产一区白浆| 欧美日韩1区| 蜜桃av.网站在线观看| 美女网站一区| 亚洲精品人人| 91综合视频| 夜久久久久久| 国产精品分类| 免费观看不卡av| 日韩av一区二| 久久久精品网| 97精品国产99久久久久久免费| 久久女人天堂| 欧美日韩国产探花| 久久亚洲人体| 在线精品福利| 日韩中文在线电影| 日韩有码av| 日韩精品欧美| 日韩av不卡一区二区| 久久久久久久久丰满| 日韩av一区二区在线影视| 久久久亚洲一区| 国产欧美午夜| 日韩视频在线一区二区三区 | 日本高清久久| 日韩免费一区| 日韩综合一区二区| 国精品一区二区| 精品久久网站| 91麻豆精品激情在线观看最新| 久久国产中文字幕| 美女国产精品久久久| 免费人成黄页网站在线一区二区| 久久精品国产亚洲aⅴ| 亚洲一区二区三区高清| 激情综合五月| 国产日韩中文在线中文字幕| 欧美女激情福利| 91精品韩国| 欧美激情在线精品一区二区三区| 美女日韩在线中文字幕| 色88888久久久久久影院| 久久精品亚洲| 国产欧美日韩一区二区三区在线| 蜜臀av在线播放一区二区三区| 99精品视频在线| 成人午夜在线| 国产欧美日韩影院| 丝袜诱惑制服诱惑色一区在线观看| 成人片免费看| 福利精品在线| 欧美亚洲一区二区三区| 国产激情在线播放| 午夜久久久久| 久久影院一区二区三区| 亚洲综合中文| 不卡在线一区| 国产suv精品一区| 日本不卡高清| 麻豆高清免费国产一区| 天堂精品久久久久| 日韩网站在线| 婷婷综合亚洲| 麻豆理论在线观看| 国产日韩视频在线| 欧美视频一区| 欧美日韩xxxx| 久久国际精品| 国产乱码精品一区二区亚洲| 亚洲精品美女91| 亚洲三级视频| 亚洲精品在线国产| 先锋影音久久久| 99成人在线| 午夜在线精品偷拍| 日韩中文字幕| 欧美在线91| 日韩精品欧美精品| 丝袜亚洲精品中文字幕一区| 中文日韩在线| 亚洲一区二区三区四区电影| 另类国产ts人妖高潮视频| 先锋影音久久久| 日韩中出av| 欧美啪啪一区| 欧美精品aa| 国产66精品| 99精品视频精品精品视频| 国产一区日韩欧美| 免费成人av在线播放| 蜜桃视频一区二区三区在线观看| 老色鬼久久亚洲一区二区| 国产精品嫩草99av在线| 亚洲午夜久久| 欧美另类中文字幕 | 麻豆91小视频| 国产精品99一区二区三区| 日本不卡免费高清视频在线| 久久久噜噜噜| 免费在线看一区| 国产麻豆精品| 精品捆绑调教一区二区三区| 香蕉精品视频在线观看| 亚洲一二三区视频| 欧美亚洲tv| 91青青国产在线观看精品| 美女毛片一区二区三区四区| 亚州av一区| 日韩成人免费| 欧美中文字幕| 麻豆国产精品视频| 激情欧美一区| 综合国产视频| 国产精品久久观看| 不卡中文字幕| 欧美精品国产| 性欧美xxxx免费岛国不卡电影| 亚洲一区导航| 激情久久99| 在线视频日韩| 国产经典一区| 尤物在线精品| 久久精品国内一区二区三区| 亚洲手机在线| 国产日韩精品视频一区二区三区| 欧美精品日日操| 日本亚洲不卡| 1024精品一区二区三区| 国产麻豆精品| 一区福利视频| 国产欧美啪啪| 国产综合婷婷| 免费精品一区| 欧美午夜不卡| 麻豆极品一区二区三区| 亚洲午夜av| 久久99蜜桃| 免费观看久久久4p| 日韩高清欧美| 欧美片第1页综合| 99国产精品久久久久久久成人热| 国产精品手机在线播放| 午夜在线一区| 日韩在线短视频| 国产精品视频一区二区三区综合| 影音先锋久久| 成人免费网站www网站高清| 日本vs亚洲vs韩国一区三区二区| 久久激情中文| 国产精品a级| 日日夜夜免费精品视频| 久久国产小视频| 国产一区二区三区国产精品| 日韩精品亚洲专区在线观看| 欧美~级网站不卡| 粉嫩av一区二区三区四区五区 | 国产一区二区三区不卡av | 特黄毛片在线观看| 国产精品一区2区3区| 男人的天堂亚洲一区| 香蕉久久99| www.51av欧美视频| 国产乱人伦丫前精品视频 | 欧美影院三区| 国产高潮在线| 久久香蕉网站| 国产精东传媒成人av电影| 亚洲v天堂v手机在线| 欧美久久精品一级c片| 色网在线免费观看| 国产精品对白| 日韩高清一级| 亚洲另类黄色| 中文字幕av一区二区三区人 | 国产精品久久久久久久免费观看 | 亚洲激精日韩激精欧美精品| 中文字幕系列一区| 国产一区二区三区久久 | 欧美日韩视频免费看| 综合激情网站| 一区二区三区四区精品视频| 亚洲激情婷婷| 午夜久久福利| 九九久久电影| 久久久精品网| 五月天久久网站| 夜久久久久久| 视频在线观看一区二区三区| 欧美天堂亚洲电影院在线观看|