php 仿美团切换城市,微信小程序仿美团城市选择的实现

本文详细介绍了如何在微信小程序中创建一个仿美团的城市选择器。通过利用城市数据、滚动定位和事件处理,实现了字母导航和城市列表的交互功能。用户可以点击字母快速定位到相应城市,也可以选择热门城市。代码示例展示了从加载到渲染的全过程,为开发者提供了参考。
摘要由CSDN通过智能技术生成

这篇文章主要为大家详细介绍了微信小程序仿美团城市选择,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序城市选择器,供大家参考,具体内容如下

8f6e137d5f104ec41b2736f1c944e9ae.gif

代码很简单.

var city = require('../../utils/city.js');

var app = getApp()

Page({

data: {

searchLetter: [],

showLetter: "",

winHeight: 0,

// tHeight: 0,

// bHeight: 0,

cityList: [],

isShowLetter: false,

scrollTop: 0,//置顶高度

scrollTopId: '',//置顶id

city: "上海市",

hotcityList: [{ cityCode: 110000, city: '北京市' }, { cityCode: 310000, city: '上海市' }, { cityCode: 440100, city: '广州市' }, { cityCode: 440300, city: '深圳市' }, { cityCode: 330100, city: '杭州市' }, { cityCode: 320100, city: '南京市' }, { cityCode: 420100, city: '武汉市' }, { cityCode: 410100, city: '郑州市' }, { cityCode: 120000, city: '天津市' }, { cityCode: 610100, city: '西安市' }, { cityCode: 510100, city: '成都市' }, { cityCode: 500000, city: '重庆市' }]

},

onLoad: function () {

// 生命周期函数--监听页面加载

var searchLetter = city.searchLetter;

var cityList = city.cityList();

var sysInfo = wx.getSystemInfoSync();

var winHeight = sysInfo.windowHeight;

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

})

},

onReady: function () {

// 生命周期函数--监听页面初次渲染完成

},

onShow: function () {

// 生命周期函数--监听页面显示

},

onHide: function () {

// 生命周期函数--监听页面隐藏

},

onUnload: function () {

// 生命周期函数--监听页面卸载

},

onPullDownRefresh: function () {

// 页面相关事件处理函数--监听用户下拉动作

},

onReachBottom: function () {

// 页面上拉触底事件的处理函数

},

clickLetter: function (e) {

console.log(e.currentTarget.dataset.letter)

var showLetter = e.currentTarget.dataset.letter;

this.setData({

showLetter: showLetter,

isShowLetter: true,

scrollTopId: showLetter,

})

var that = this;

setTimeout(function () {

that.setData({

isShowLetter: false

})

}, 1000)

},

//选择城市

bindCity: function (e) {

console.log("bindCity")

this.setData({ city: e.currentTarget.dataset.city })

},

//选择热门城市

bindHotCity: function (e) {

console.log("bindHotCity")

this.setData({

city: e.currentTarget.dataset.city

})

},

//点击热门城市回到顶部

hotCity: function () {

this.setData({

scrollTop: 0,

})

}

})

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值