詳解微信小程序開(kāi)發(fā)之城市選擇器 城市切換
更新時(shí)間:2017年01月17日 14:43:01 作者:懂懂懂懂懂懂懂懂大人
這篇文章主要介紹了詳解微信小程序開(kāi)發(fā)之城市選擇器 城市切換,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
移動(dòng)開(kāi)發(fā)中城市選擇器必不可少.
空白造了個(gè).
gif:
這里只上部分js代碼:
var city = require('../../utils/city.js'); Page({ data: { searchLetter: [], showLetter: "", winHeight: 0, tHeight: 0, bHeight: 0, startPageY: 0, cityList: [], isShowLetter: false, scrollTop: 0, city: "" }, onLoad: function (options) { // 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載 var searchLetter = city.searchLetter; var cityList = city.cityList(); // console.log(cityInfo); var sysInfo = wx.getSystemInfoSync(); console.log(sysInfo); var winHeight = sysInfo.windowHeight; //添加要匹配的字母范圍值 //1、更加屏幕高度設(shè)置子元素的高度 var itemH = winHeight / searchLetter.length; var tempObj = []; for (var i = 0; i < searchLetter.length; i++) { var temp = {}; temp.name = searchLetter[i]; temp.tHeight = i * itemH; temp.bHeight = (i + 1) * itemH; tempObj.push(temp) } this.setData({ winHeight: winHeight, itemH: itemH, searchLetter: tempObj, cityList: cityList }) console.log(this.data.cityInfo); }, onReady: function () { // 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成 }, onShow: function () { // 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示 }, onHide: function () { // 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面隱藏 }, onUnload: function () { // 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面卸載 }, onPullDownRefresh: function () { // 頁(yè)面相關(guān)事件處理函數(shù)--監(jiān)聽(tīng)用戶下拉動(dòng)作 }, onReachBottom: function () { // 頁(yè)面上拉觸底事件的處理函數(shù) }, onShareAppMessage: function () { // 用戶點(diǎn)擊右上角分享 return { title: 'title', // 分享標(biāo)題 desc: 'desc', // 分享描述 path: 'path' // 分享路徑 } }, searchStart: function (e) { var showLetter = e.currentTarget.dataset.letter; var pageY = e.touches[0].pageY; this.setScrollTop(this, showLetter); this.nowLetter(pageY, this); this.setData({ showLetter: showLetter, startPageY: pageY, isShowLetter: true, }) }, searchMove: function (e) { var pageY = e.touches[0].pageY; var startPageY = this.data.startPageY; var tHeight = this.data.tHeight; var bHeight = this.data.bHeight; var showLetter = 0; console.log(pageY); if (startPageY - pageY > 0) { //向上移動(dòng) if (pageY < tHeight) { // showLetter=this.mateLetter(pageY,this); this.nowLetter(pageY, this); } } else {//向下移動(dòng) if (pageY > bHeight) { // showLetter=this.mateLetter(pageY,this); this.nowLetter(pageY, this); } } }, searchEnd: function (e) { // console.log(e); // var showLetter=e.currentTarget.dataset.letter; var that = this; setTimeout(function () { that.setData({ isShowLetter: false }) }, 1000) }, nowLetter: function (pageY, that) {//當(dāng)前選中的信息 var letterData = this.data.searchLetter; var bHeight = 0; var tHeight = 0; var showLetter = ""; for (var i = 0; i < letterData.length; i++) { if (letterData[i].tHeight <= pageY && pageY <= letterData[i].bHeight) { bHeight = letterData[i].bHeight; tHeight = letterData[i].tHeight; showLetter = letterData[i].name; break; } } this.setScrollTop(that, showLetter); that.setData({ bHeight: bHeight, tHeight: tHeight, showLetter: showLetter, startPageY: pageY }) }, bindScroll: function (e) { console.log(e.detail) }, setScrollTop: function (that, showLetter) { var scrollTop = 0; var cityList = that.data.cityList; var cityCount = 0; var initialCount = 0; for (var i = 0; i < cityList.length; i++) { if (showLetter == cityList[i].initial) { scrollTop = initialCount * 30 + cityCount * 41; break; } else { initialCount++; cityCount += cityList[i].cityInfo.length; } } that.setData({ scrollTop: scrollTop }) }, bindCity: function (e) { var city = e.currentTarget.dataset.city; this.setData({ city: city }) } })
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 微信小程序?qū)崿F(xiàn)自定義picker選擇器彈窗內(nèi)容
- 微信小程序 省市區(qū)選擇器實(shí)例詳解(附源碼下載)
- 微信小程序三級(jí)聯(lián)動(dòng)選擇器使用方法
- 微信小程序多列選擇器range-key使用詳解
- 微信小程序三級(jí)聯(lián)動(dòng)地址選擇器的實(shí)例代碼
- 微信小程序自定義多列選擇器使用詳解
- 微信小程序 滾動(dòng)選擇器(時(shí)間日期)詳解及實(shí)例代碼
- 微信小程序?qū)崿F(xiàn)聯(lián)動(dòng)選擇器
- 微信小程序日歷彈窗選擇器代碼實(shí)例
- 微信小程序多項(xiàng)選擇器checkbox
相關(guān)文章
JavaScript實(shí)現(xiàn)刮刮樂(lè)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)刮刮樂(lè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11微信小程序上傳圖片并等比列壓縮到指定大小的實(shí)例代碼
這篇文章主要介紹了微信小程序 上傳圖片并等比列壓縮到指定大小,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10JS window對(duì)象的top、parent、opener含義介紹
本文為大家介紹下JS window對(duì)象的top、parent、opener含義,不了解的朋友可以參考下,希望對(duì)大家有所幫助2013-12-12通過(guò)遮罩層實(shí)現(xiàn)浮層DIV登錄的js代碼
遮罩層實(shí)現(xiàn)浮層DIV登錄的效果,想必很多的朋友都有遇到過(guò)吧,實(shí)現(xiàn)起來(lái)也是很簡(jiǎn)單的,下面有個(gè)不錯(cuò)的實(shí)現(xiàn),大家可以感受下2014-02-02uniapp web-view組件雙向通信的問(wèn)題記錄
本文主要介紹在uniapp中頁(yè)面與webview組件內(nèi)頁(yè)面的雙向通信問(wèn)題,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07Gulp實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)模塊化的方法詳解
眾所周知Gulp.js 是一個(gè)自動(dòng)化構(gòu)建工具,開(kāi)發(fā)者可以使用它在項(xiàng)目開(kāi)發(fā)過(guò)程中自動(dòng)執(zhí)行常見(jiàn)任務(wù)。下面這篇文章主要給大家介紹了關(guān)于Gulp實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)模塊化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-01-01