uniapp js一个list数组循环显示一个动态icon,点击第一个list让第一个icon改变颜色或者样式,如何编写
时间: 2024-12-15 08:16:47 浏览: 14
在uniApp中,你可以使用JavaScript和WXML模板来实现这个功能。首先,你需要创建一个包含图标和状态的列表,然后设置初始状态。当用户点击列表的第一个元素时,通过事件监听器更新对应图标的样式。
以下是一个简单的示例:
```html
<view class="list">
<view wx:for="{{items}}" wx:key="*this" @tap="changeIconColor($index)">
<image :src="item.icon" :class="{active: index === 0}" />
</view>
</view>
<script>
Page({
data: {
items: [
{ icon: 'path/to/icon1', initialStyle: 'color:red;' },
// 其他项...
],
currentIndex: -1,
},
changeIconColor(index) {
this.currentIndex = index;
if (this.currentIndex === 0) {
let firstItem = this.data.items[0];
// 改变第一个图标的颜色或样式
firstItem.initialStyle = 'color:blue;'; // 更改为蓝色
// 如果需要动画效果,可以使用wx.setComponentProperty
// wx.setComponentProperty({
// instanceId: this.data.items[0].instanceId,
// name: 'style',
// value: 'color: blue;'
// });
}
}
});
</script>
```
在这个例子中,每个`<image>`标签都有一个`:class`属性,它的值是一个对象,如果当前索引等于0,则应用`active`类并改变颜色。当用户点击第一个元素时,`changeIconColor`方法会被触发,将`initialStyle`更改为新的样式。
阅读全文