【Uni-app】在App端使用颜色选择器iro.js

  • iro.js和Echarts一样要用到id选择器,但是uniapp是不支持直接用document.getElementById的,所以写一下使用记录,效果如图所示
    在这里插入图片描述

一、下载iro.js

在uniAPP终端里输入 npm install @jaames/iro --save

二、引用iro.js

import iro from'@jaames/iro';

三、使用render.js

在本来的script下面添加一个script

<script module="picker" lang="renderjs">
	import iro from'@jaames/iro';
	export default {
		data() {
			return {
				RGB:""
			};
		},
		mounted() {
			let that = this;
			// 通过nextTick异步画图
			this.$nextTick(() => {
				setTimeout(function() {
					that.initEcharts()
				}, 100);
			});
		},
		methods:{
			initEcharts(){
				let that = this;
				var colorPicker = new iro.ColorPicker(document.getElementById('picker'),{
					width: 300,
					color:'#fff'
				})
				colorPicker.on('color:change', function(color) {
					that.RGB = color.rgb
					that.Postmessage()
				});
			},
			Postmessage(event,ownerInstance){
				let that = this;
				that.$ownerInstance.callMethod('OnViewClick', that.RGB)
			}
		}
	}
</script>

原本的script接收renderjs传来的数据

<script>
	export default {
		data() {
			return {
			};
		},
		methods:{
			OnViewClick(data){
			   console.log(data)//renderjs传来的数据
			},
		}
	}
</script>
要在 Vue 中使 iro.js 控件自适应宽度和高度,您可以在初始化 iro.js使用 `window.innerWidth` 和 `window.innerHeight` 属性设置宽度和高度。这是一个简单的示例: 1. 安装 iro.js: ```bash npm install iro --save ``` 2. 在 Vue 组件中引入 iro.js: ```javascript import iro from '@jaames/iro'; ``` 3. 添加一个 div 元素作为颜色选择器的容器,并在 Vue 组件的 `mounted` 生命周期函数中初始化 iro.js: ```html <template> <div> <div ref="colorPicker"></div> </div> </template> <script> import iro from '@jaames/iro'; export default { name: 'ColorPickerComponent', mounted() { this.initColorPicker(); }, methods: { initColorPicker() { const width = window.innerWidth; const height = window.innerHeight; const colorPickerScale = Math.min(width, height) * 0.8; const colorPicker = new iro.ColorPicker(this.$refs.colorPicker, { width: colorPickerScale, height: colorPickerScale }); colorPicker.on('input:change', (color) => { console.log('Color changed:', color.hexString); }); } } } </script> ``` 上述示例中,颜色选择器的宽度和高度将根据窗口大小自动缩放。为使颜色选择器在窗口大小改变时自适应宽度和高度,可以添加 `window.onresize` 监听器并重新初始化颜色选择器。注意,在组件销毁时,也需要清除监听器,以避免内存泄漏。这里是如何为颜色选择器添加 `resize` 监听器的示例: ```javascript export default { ... mounted() { this.initColorPicker(); window.addEventListener('resize', this.initColorPicker); }, beforeDestroy() { window.removeEventListener('resize', this.initColorPicker); }, ... } ``` 现在,当窗口大小改变时,iro.js 颜色选择器会自动调整其宽度和高度。
05-05
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值