微信小程序自定義select下拉選項框的方法_第1頁
微信小程序自定義select下拉選項框的方法_第2頁
微信小程序自定義select下拉選項框的方法_第3頁
微信小程序自定義select下拉選項框的方法_第4頁
微信小程序自定義select下拉選項框的方法_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第微信小程序自定義select下拉選項框的方法本文實例為大家分享了微信小程序自定義select下拉選項框的具體代碼,供大家參考,具體內(nèi)容如下

第一步:創(chuàng)建組件所需的文件

第二步:開始配置組件

select.json

{

"component":true,

"usingComponents":{

"select":"./select"

}

第三步:自定義組件樣式及js

select.wxml

view

viewbindtap='selectToggle'

view{{nowText}}/view

imagesrc='../../public/image/index/jinru1@2x.png'

animation="{{animationData}}"/image

/view

viewwx:if="{{selectShow}}"

viewwx:for="{{propArray}}"data-index="{{index}}"wx:key=''bindtap='setText'{{item.text}}/view

/view

/view

select.wxss

.com-selectBox{

width:200px;

.com-sContent{

border:1pxsolid#e2e2e2;

background:white;

font-size:16px;

position:relative;

height:30px;

line-height:30px;

.com-sImg{

position:absolute;

right:10px;

top:11px;

width:16px;

height:9px;

transition:all.3sease;

.com-sTxt{

overflow:hidden;

text-overflow:ellipsis;

white-space:nowrap;

padding:020px06px;

font-size:14px;

.com-sList{

background:white;

width:inherit;

position:absolute;

border:1pxsolid#e2e2e2;

border-top:none;

box-sizing:border-box;

z-index:3;

max-height:120px;

overflow:auto;

.com-sItem{

height:30px;

line-height:30px;

border-top:1pxsolid#e2e2e2;

padding:06px;

text-align:left;

overflow:hidden;

text-overflow:ellipsis;

white-space:nowrap;

font-size:14px;

.com-sItem:first-child{

border-top:none;

}

select.js

Component({

/**

*組件的屬性列表

*/

properties:{

propArray:{

type:Array,

}

/**

*組件的初始數(shù)據(jù)

*/

data:{

selectShow:false,//初始option不顯示

nowText:"請選擇",//初始內(nèi)容

animationData:{}//右邊箭頭的動畫

/**

*組件的方法列表

*/

methods:{

//option的顯示與否

selectToggle:function(){

varnowShow=this.data.selectShow;//獲取當前option顯示的狀態(tài)

//創(chuàng)建動畫

varanimation=wx.createAnimation({

timingFunction:"ease"

})

this.animation=animation;

if(nowShow){

animation.rotate(0).step();

this.setData({

animationData:animation.export()

})

}else{

animation.rotate(180).step();

this.setData({

animationData:animation.export()

})

}

this.setData({

selectShow:!nowShow

})

},

//設(shè)置內(nèi)容

setText:function(e){

varnowData=pArray;//當前option的數(shù)據(jù)是引入組件的頁面?zhèn)鬟^來的,所以這里獲取數(shù)據(jù)只有通過perties

varnowIdx=e.target.dataset.index;//當前點擊的索引

varnowText=nowData[nowIdx].text;//當前點擊的內(nèi)容

//子組件觸發(fā)事件

varnowDate={

id:nowIdx,

text:nowText

}

this.triggerEvent('myget',nowDate)

//再次執(zhí)行動畫,注意這里一定,一定,一定是this.animation來使用動畫

this.animation.rotate(0).step();

this.setData({

selectShow:false,

nowText:nowText,

animationData:this.animation.export()

})

}

})

第四步:引入組件,傳入組件所需數(shù)據(jù)

1、引入組件的頁面的json文件中配置

{

"usingComponents":{

"Select":"../../components/select/select"

"navigationBarTitleText":""

}

2、引入組件的頁面的wxml文件中配置

bind:myget=getDate對組件的事件進行監(jiān)聽

Selectprop-array='{{selectArray}}'bind:myget='getDate'/Select

3、引入組件的頁面的js文件中配置

data:{

selectArray:[

{

"id":"01",

"text":"停車A區(qū)"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論