列表点击更改样式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30299243/article/details/82755713

这一篇博客是在上一篇gridview的基础上改的。属于功能增加,有兴趣的可以看看

https://mp.csdn.net/postedit/82750123

其实点击更改样式的逻辑很简单,就是判断点击的时候加个判断即可。

1,xml

<!--utils/gv/gv.wxml-->

<view class="gridview" style='background:white;'>

<view class="gridview-item" wx:for="{{list}}" wx:key="name">

<view class='gridview-item__bg'>

<view class="gridview-item__view" id='{{index}}' bindtap='onclick'>

//在这里添加判断如果是点击了就显示一个布局,否则显示别的布局

<block wx:if="{{index==clickId}}">

<view class='onclicks'>

<view class='item-time1'>{{item.time}}</view>

<view class='item-text1'>{{item.name}}</view>

</view>

</block>

<block wx:else>

<view class='item-time'>{{item.time}}</view>

<view class='item-text'>{{item.name}}</view>

</block>

</view>

</view>

</view>

</view>

2,js

// utils/gv/gv.js

Page({

/**

* 页面的初始数据

*/

data: {

clickId:100,//这个表示默认显示第几条为更改的布局,一般来说只有点击的时候才会显示不同的布局,所以这个暂时写100,也就是都是默认的样式,如果需要在点击之前就显示一个不同的布局,那么这个的值就是0,也就是数组的第一个。

clickItem:'',

list: [{

id: 1,

name: "大力1",

time: '10:00-18:30'

}, {

id: 2,

name: ' 大力2',

time: '10:00-17:30'

}, {

id: 2,

name: ' 大力3',

time: '10:00-16:30'

}, {

id: 2,

name: '大力4',

time: '10:00-15:30'

}, {

id: 2,

name: '大力5',

time: '10:00-14:30'

}, {

id: 2,

name: '大力6',

time: '10:00-13:30'

}, {

id: 2,

name: ' 大力7',

time: '10:00-12:30'

}],

coloritem: '',

},

onclick: function (event){

var id = event.currentTarget.id//点击的选项会改变颜色

this.setData({

clickId: id,

clickItem: this.data.list[id]

})

},

/**

* 生命周期函数--监听页面加载

*/

onLoad: function(options) {

},

/**

* 生命周期函数--监听页面初次渲染完成

*/

onReady: function() {

},

/**

* 生命周期函数--监听页面显示

*/

onShow: function() {

},

/**

* 生命周期函数--监听页面隐藏

*/

onHide: function() {

},

/**

* 生命周期函数--监听页面卸载

*/

onUnload: function() {

},

/**

* 页面相关事件处理函数--监听用户下拉动作

*/

onPullDownRefresh: function() {

},

/**

* 页面上拉触底事件的处理函数

*/

onReachBottom: function() {

},

/**

* 用户点击右上角分享

*/

onShareAppMessage: function() {

}

})

3,wxss

/* utils/gv/gv.wxss */

/* 两列列表样式 start */

.gridview {

margin: 5rpx 10rpx 5rpx 10rpx;

/* 以下两个可以根据需要自己决定是留着还是去掉 *//* position: relative;

overflow: hidden; *//* gv整体的颜色 */

background: #eee;

}

.gridview:before {

content: " ";

position: absolute;

left: 0;

top: 0;

right: 0;

height: 5px;

-webkit-transform-origin: 0 0;

transform-origin: 0 0;

-webkit-transform: scaleY(0.5);

transform: scaleY(0.5);

}

.gridview:after {

content: " ";

position: absolute;

left: 0;

top: 0;

bottom: 0;

/* 整体的左边距 */

border-left: 5px solid #d9d9d9;

color: #d9d9d9;

-webkit-transform-origin: 0 0;

transform-origin: 0 0;

-webkit-transform: scaleX(0.5);

transform: scaleX(0.5);

}

.gridview-item {

margin: 1% 1% 1% 1%;

background: #eee;

/* 加上下面一行表示默认的分割线 *//* position: relative; */

float: left;

/* 内边距可根据实际情况添加 *//* padding: 5px 5px 5px 5px; */

width: 48%;

box-sizing: border-box;

}

.gridview-item:before {

content: " ";

position: absolute;

right: 0;

top: 0;

width: 1px;

bottom: 0;

border-right: 5px solid #d9d9d9;

color: #d9d9d9;

-webkit-transform-origin: 100% 0;

transform-origin: 100% 0;

-webkit-transform: scaleX(0.5);

transform: scaleX(0.5);

}

.gridview-item:after {

content: " ";

position: absolute;

left: 0;

bottom: 0;

right: 0;

height: 1px;

border-bottom: 1px solid #d9d9d9;

color: #d9d9d9;

-webkit-transform-origin: 0 100%;

transform-origin: 0 100%;

-webkit-transform: scaleY(0.5);

transform: scaleY(0.5);

}

.gridview-item:active {

background-color: #ececec;

}

.gridview-item__bg {

background: #fff;

position: relative;

float: left;

padding: 0px 0px;

width: 100%;

box-sizing: border-box;

display: flex;

align-items: center;

justify-content: center;

height: 140rpx;

}

.gridview-item__view {

display: flex;

flex-direction: column;

width: 100%;

height: 100%;

align-items: center;

justify-content: center;

font-size: 12px;

color: #222;

background: #fff;

}

.onclicks {

border: 1rpx solid #C73E3A;

display: flex;

flex-direction: column;

width: 100%;

height: 100%;

align-items: center;

justify-content: center;

font-size: 12px;

color: #222;

background: #fff;

}

.gridview-item__view1 {

display: flex;

flex-direction: column;

width: 100%;

height: 100%;

align-items: center;

justify-content: center;

font-size: 12px;

color: red;

background: #fff;

}

.item-time {

color: #333;

font-size: 38rpx;

}

.item-text {

margin-top: 8rpx;

color: #666;

font-size: 26rpx;

}

.item-time1 {

color: #c73e3a;

font-size: 38rpx;

}

.item-text1 {

margin-top: 8rpx;

color: #c73e3a;

font-size: 26rpx;

}

猜你喜欢

转载自blog.csdn.net/qq_30299243/article/details/82755713