js 动态渲染元素的样式

4 篇文章 0 订阅

一、场景:

在UI设计图中,可能会出现页面中多个尺寸大小一致的元素、显示不同样式的情况:
在这里插入图片描述
由图中可见,边框中的每个颜色都不一致


二、 思路:

文件中可以维护一组Map集合的数据对照。当接口返回所有元素之后,将元素一个个循环遍历,紧接着在遍历的过程中将Map数据与之对应的元素进行样式的依次渲染。


三、代码实现:

data(){
	return {
		dataBorderSet:{
			'Demo1':'#93948f',
			'Demo2':'#92948f',
			'Demo3':'#8f948f',
			'Demo4':'#928f94'
		}
	}
},
onLoad(){
	this.init();
},
init(){
	let { isSuc, data } = await new this.$ajax({
         path: "getAllData",
         data: {
            请求参数
         },
         method: "GET"
         }).catch(e => e);
         if(isSuc){
			this.dataList = data.dataList // 获取的接口数据
			this.dataList.forEach((v, i)=>{ // v-每一项数据 i-元素对应下标
				// 在这里做元素样式的渲染
				// 匹配每个元素的边框颜色
              Object.keys(this.dataBorderSet).forEach(k => {
                if (k === v.name) { // 当Set对照表中的key与接口数据中元素的名称(Demo)相同
                  v.bordercolorOfElement = this.dataBorderSet[k]; // 将Set对照表中key对应的value值匹配给接口数据中的bordercolorOfElement变量
                }
              });
			})
		 }

}

这时,接口数据中就有了bordercolorOfElement 代表元素边框颜色。可以在html模板v-for渲染动态数据时,将这个变量也动态的设置一下样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值