微信小程序实用组件:城市切换

微信小程序实用组件:城市切换

js:
   

[JavaScript]
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})   } })

wxml:

[AppleScript]
<view class="searchLetter touchClass">     <view wx:for="{{searchLetter}}" style="height:{{itemH}}px" wx:key="index" data-letter="{{item.name}}" catchtouchstart="searchStart" catchtouchmove="searchMove" catchtouchend="searchEnd">{{item.name}}</view> </view>  <block wx:if="{{isShowLetter}}"> <view class="showSlectedLetter">     {{showLetter}} </view> </block> <view>当前选择城市:{{city}}</view> <scroll-view scroll-y="true" style="height:{{winHeight}}px" bindscroll="bindScroll" scroll-top="{{scrollTop}}">     <view class="selection" wx:for="{{cityList}}" wx:key="{{item.initial}}">         <view class="item_letter">{{item.initial}}</view>         <view class="item_city" wx:for="{{item.cityInfo}}" wx:for-item="ct" wx:key="{{ct.id}}" data-city="{{ct.city}}" bindtap="bindCity">               {{ct.city}}           </view>     </view> </scroll-view>

css:

[CSS]
.searchLetter{     position: fixed;     right: 0;     width: 40px;     height: 100%;     text-align: center;     justify-content: center;     display: flex;     flex-direction: column;     color: #666;     z-index: 1 } .searchLetter view{     height: 70rpx; } .touchClass{     background-color: rgba(0, 0, 0,0.5);     color: #fff; } .showSlectedLetter{     background-color: rgba(0, 0, 0,0.5);     color: #fff;     display: flex;     justify-content: center;     align-items: center;     position: fixed;     top:50%;     left: 50%;     margin: -50px;     width: 100px;     height: 100px;     border-radius:10px;      font-size: 26px;     z-index: 1 } .selection{     display: flex;     width: 100%;     flex-direction: column; } .item_letter{     display: flex;     background-color: #f8f8f8;     height: 30px;     padding-left: 10px;     align-items: center; } .item_city{     display: flex;     background-color: #fff;     height: 40px;     padding-left: 10px;     align-items: center;     border-bottom: 1px solid #f8f8f8 }


文件下载:
微信小程序实用组件:城市切换 switchCity.rar (9.09 KB, 下载次数: 484)

小鱼源码网www.vipsrc.vip

开心一下:

问:为什么那么多人说自己寂寞、孤单、想找个男/女朋友,却还是单身? 答:因为不仅自己丑,还嫌别人长得丑。
1.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除! 2.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,小鱼源码对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。 3.请您认真阅读上述内容,购买即以为着您同意上述内容。
小鱼源码下载网 » 微信小程序实用组件:城市切换

精品源码,商业服务,发布得积分,VIP免费下

开通会员 发布资源