移动开发中城市选择器必不可少.

空白造了个.
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) {
// 生命周期函数--监听页面加载
var searchLetter = city.searchLetter;
var cityList = city.cityList();
// console.log(cityInfo);
var sysInfo = wx.getSystemInfoSync();
console.log(sysInfo);
var winHeight = sysInfo.windowHeight;
//添加要匹配的字母范围值
//1、更加屏幕高度设置子元素的高度
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 () {
// 生命周期函数--监听页面初次渲染完成
},
onShow: function () {
// 生命周期函数--监听页面显示
},
onHide: function () {
// 生命周期函数--监听页面隐藏
},
onUnload: function () {
// 生命周期函数--监听页面卸载
},
onPullDownRefresh: function () {
// 页面相关事件处理函数--监听用户下拉动作
},
onReachBottom: function () {
// 页面上拉触底事件的处理函数
},
onShareAppMessage: function () {
// 用户点击右上角分享
return {
title: 'title', // 分享标题
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) { //向上移动
if (pageY < tHeight) {
// showLetter=this.mateLetter(pageY,this);
this.nowLetter(pageY, this);
}
} else {//向下移动
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) {//当前选中的信息
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 })
}
})
demo代码下载
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# 微信小程序城市选择器
# 微信小程序地区选择器
# 微信小程序实现自定义picker选择器弹窗内容
# 微信小程序 省市区选择器实例详解(附源码下载)
# 微信小程序三级联动选择器使用方法
# 微信小程序多列选择器range-key使用详解
# 微信小程序三级联动地址选择器的实例代码
# 微信小程序自定义多列选择器使用详解
# 微信小程序 滚动选择器(时间日期)详解及实例代码
# 微信小程序实现联动选择器
# 微信小程序日历弹窗选择器代码实例
# 微信小程序多项选择器checkbox
# 周期函数
# 必不可少
# 大家多多
# 加载
# 触底
# 选择器
# options
# function
# bindCity
# demo
# onLoad
# isShowLetter
# cityList
# scrollTop
# false
# console
# itemH
# windowHeight
# tempObj
# length
相关文章:
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
安云自助建站系统如何快速提升SEO排名?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
如何在Ubuntu系统下快速搭建WordPress个人网站?
网页设计网站制作软件,microsoft office哪个可以创建网页?
移民网站制作流程,怎么看加拿大移民官网?
完全自定义免费建站平台:主题模板在线生成一站式服务
网站插件制作软件免费下载,网页视频怎么下到本地插件?
在线教育网站制作平台,山西立德教育官网?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
制作证书网站有哪些,全国城建培训中心证书查询官网?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何在局域网内绑定自建网站域名?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何零基础开发自助建站系统?完整教程解析
建站之星如何开启自定义404页面避免用户流失?
招贴海报怎么做,什么是海报招贴?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
全景视频制作网站有哪些,全景图怎么做成网页?
网站制作公司,橙子建站是合法的吗?
如何在建站主机中优化服务器配置?
如何零基础在云服务器搭建WordPress站点?
如何通过VPS建站无需域名直接访问?
怀化网站制作公司,怀化新生儿上户网上办理流程?
如何在万网开始建站?分步指南解析
如何通过智能用户系统一键生成高效建站方案?
建站168自助建站系统:快速模板定制与SEO优化指南
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
建站之星免费版是否永久可用?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
建站上传速度慢?如何优化加速网站加载效率?
潮流网站制作头像软件下载,适合母子的网名有哪些?
成都网站制作报价公司,成都工业用气开户费用?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
网站制作公司排行榜,抖音怎样做个人官方网站
魔方云NAT建站如何实现端口转发?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
建站之星代理如何优化在线客服效率?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
太原网站制作公司有哪些,网约车营运证查询官网?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何在Windows服务器上快速搭建网站?
广州营销型建站服务商推荐:技术优势与SEO优化解析
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
*请认真填写需求信息,我们会在24小时内与您取得联系。