微信小程序?qū)崿F(xiàn)單列下拉菜單效果
接下來(lái)我想做的是一個(gè)下拉菜單用來(lái)分類(lèi)的,但是在網(wǎng)上搜了一下,基本上全都是比較復(fù)雜的分類(lèi)菜單,最簡(jiǎn)單的也是分三列的下拉菜單,但是并不想要這么復(fù)雜的,最后找了一個(gè)三列的,改成了單列。也把代碼盡可能的簡(jiǎn)單化了。
實(shí)現(xiàn)的效果圖:
合并狀態(tài):

首先下面是目錄結(jié)構(gòu):

下面是實(shí)現(xiàn)的具體代碼:
.wxml
<!--選擇框-->
<view class="product-list">
<!--條件選擇-->
<view class="choice-bar">
<view bindtap="opens" data-item="1" class="chioce-item" hover-class="click-once-opaque">{{start}}
<image class="icon-chioce" src="{{!isstart?openimg: offimg}}"></image>
</view>
<view class="sorting-list{{!isstart?' chioce-list-hide':' chioce-list-show'}}">
<view wx:for="{{slist}}" catchtap="onclicks1" data-index="{{index}}" class="sorting-item" hover-class="click-once" wx:key="userInfoListId" >{{item.name}}</view>
</view>
</view>
</view>
.wxss
.product-list {
width: 100%;
box-sizing: border-box;
}
.choice-bar {
position: fixed;
display: flex;
width: 100%;
font-size: 14px;
background-color: #fff;
/**z-index: 0;**/
}
.chioce-item {
background-color: #fff;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20rpx;
width: 100%;
height: 80rpx;
border-top: 1rpx solid #ddd;
border-bottom: 1rpx solid #ddd;
border-left: 1rpx solid #ddd;
/*border-right: 1rpx solid #ddd;*/
}
.icon-chioce {
height: 30rpx;
width: 30rpx;
}
.district-list,.sorting-list,.filter-list {
margin-top: 2rpx;
position: absolute;
top: 80rpx;
left: 0;
width: 100%;
background-color: #fff;
z-index: -1;
font-size: 14px;
border-bottom: 1rpx solid #ddd;
}
.chioce-list-hide {
display: none !important;
}
.chioce-list-show {
/**top: 80rpx;**/
animation: slide 500ms;
}
.sorting-item {
height: 80rpx;
line-height: 80rpx;
padding: 0 40rpx;
border-bottom: 1rpx solid #ddd;
}
.js
Page({
data: {
start: "起始地",
slist: [
{ id: 1, name: "第一類(lèi)" },
{ id: 1, name: "第二類(lèi)" },
{ id: 1, name: "第三類(lèi)" },
{ id: 1, name: "第四類(lèi)" },
{ id: 1, name: "第五類(lèi)" },
],
isstart: false,
openimg: "/images/list/list.png",
offimg: "/images/list/list1.png"
},
opens: function (e) {
switch (e.currentTarget.dataset.item) {
case "1":
if (this.data.isstart) {
this.setData({
isstart: false,
});
}
else {
this.setData({
isstart: true,
});
}
break;
}
},
onclicks1: function (e) {
var index = e.currentTarget.dataset.index;
let name = this.data.slist[index].name;
this.setData({
isstart: false,
isfinish: false,
isdates: false,
start: this.data.slist[index].name,
finish: "目的地"
})
}
})
以上所述是小編給大家介紹的微信小程序單列下拉菜單詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
javascript實(shí)現(xiàn)函數(shù)柯里化與反柯里化過(guò)程解析
這篇文章主要介紹了javascript實(shí)現(xiàn)函數(shù)柯里化與反柯里化過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
JavaScript時(shí)間格式整理大全(附大量示例)
在JavaScript中時(shí)間格式轉(zhuǎn)換是一個(gè)常見(jiàn)的需求,可以通過(guò)多種方式實(shí)現(xiàn),這篇文章主要介紹了JavaScript時(shí)間格式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
javascript輕松實(shí)現(xiàn)當(dāng)鼠標(biāo)移開(kāi)時(shí)已彈出子菜單自動(dòng)消失
本文為大家詳細(xì)介紹下使用javascript實(shí)現(xiàn)當(dāng)鼠標(biāo)移開(kāi)時(shí)已彈出子菜單自動(dòng)消失,具體如下,感興趣的朋友不要錯(cuò)過(guò)2013-12-12
js中使用DOM復(fù)制(克?。┲付ü?jié)點(diǎn)名數(shù)據(jù)到新的XML文件中的代碼
使用DOM復(fù)制(克隆)指定節(jié)點(diǎn)名數(shù)據(jù)到新的XML文件中 ,用到三個(gè)類(lèi)的相關(guān)知識(shí)點(diǎn) : DOMDocument - DOMNodeList - DOMNode2011-07-07
微信小程序防止多次點(diǎn)擊跳轉(zhuǎn)(函數(shù)節(jié)流)
這篇文章主要介紹了微信小程序防止多次點(diǎn)擊跳轉(zhuǎn)問(wèn)題(函數(shù)節(jié)流),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
用Javascript評(píng)估用戶(hù)輸入密碼的強(qiáng)度實(shí)現(xiàn)代碼
用Javascript評(píng)估用戶(hù)輸入密碼的強(qiáng)度實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-11-11
JS中for,for...in,for...of和forEach的區(qū)別和用法實(shí)例
JS遍歷數(shù)組(循環(huán)數(shù)組)的方式有多種,可以使用傳統(tǒng)的for循環(huán),也可以使用升級(jí)版的for in循環(huán),還可以使用Array類(lèi)型的forEach() 方法,這篇文章主要給大家介紹了關(guān)于JS中for、for...in、for...of和forEach的區(qū)別和用法的相關(guān)資料,需要的朋友可以參考下2021-11-11

