1. 程式人生 > >列表點選更改樣式

列表點選更改樣式

這一篇部落格是在上一篇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;

}