DDR爱好者之家 Design By 杰米
本文实例为大家分享了js实现手机端城市列表索引选择城市的具体代码,供大家参考,具体内容如下
html部分:
<div class="cityPage"> <div class="cityContent"> <div class="inputBox"> <input type="text" placeholder="中文 / 拼音首字母" id="findcityInp"> </div> <div class="localCity">定位城市</div> <div class="cityname">上海市</div> </div> <div id='list'> <section id="sectionBox"></section> <nav id="navBar"></nav> </div> <div class="letterBox"></div> </div>
css部分:
*{ margin: 0; padding: 0; list-style: none; } html{ font-size: 12px; } body { background-color: #f5f5f5; font-family: 'PingFang SC Regular', 'PingFang SC'; width: 100%; height: 100%; min-width: 320px; max-width: 480px; position: relative; } .cityPage { width: 100%; height: 100%; /* border: 1px solid black; */ position: relative; top: 0; display: flex; flex-direction: column; /* justify-content: center; */ } .cityContent { width: 100%; height: 140px; /* border: 1px solid black; */ background: #f7f7f9; position: fixed; z-index: 9999; top: 0; } .inputBox input { width: 90%; height: 30px; border: 1px solid rgb(215, 215, 215); outline: none; background: #fff; margin-left: 4%; border-radius: 4px; padding-left: 4px; color: #9e9e9e; font-size: 14px; margin-bottom: 16px; margin-top: 14px; } .localCity { color: #333; font-size: 13px; font-weight: bold; margin-left: 4.5%; margin-bottom: 16px; } .cityname { font-size: 13px; margin-left: 4.5%; margin-bottom: 16px; } #list { font-size: 13px; position: fixed; height: 100%; top: 140px; width: 100%; overflow: scroll; font-size: 15px; /* margin-bottom: 140px; */ /* bottom: 200px; */ } #list>section { overflow-y: auto; height: 100%; margin-bottom: 140px; } #list>section>dl>dt { background: #f7f7f9; color: #999; height: 40px; line-height: 40px; padding-left: 15px; } #list>section>dl>dd { color: #333; line-height: 40px; padding-left: 15px; position: relative; background-color: #fff; } #list>section>dl>dd:after { content: ''; position: absolute; left: 0; bottom: 1px; width: 100%; height: 1px; background-color: #c8c7cc; transform: scaleY(.5); -webkit-transform: scaleY(.5); } #list>section>dl>dd:last-of-type:after { display: none; } #navBar { position: fixed; width: 26px; height: 50%; right: 0; z-index: 30; top: 50%; display: flex; flex-direction: column; margin-top: -25%; /* text-align: center; */ } #navBar.active { background: rgba(211, 211, 211, .6); } #navBar>div { text-align: center; display: block; text-decoration: none; /* height: 4.166%; line-height: 100%; */ color: #333; font-size: 13px; flex: 1; } .letterBox{ width: 40px; height: 40px; background:#9f9f9f; opacity: .5; position: fixed; top: 50%; left: 50%; margin-top: -25px; margin-left: -25px; text-align: center; line-height: 40px; color: #fff; display: none; }
js部分:
$(function () { initCities(cityData); clickAction() //输入城市查询 var key = false; $('#findcityInp').on('compositionstart', function () { key = true; console.log('不搜索') }); $('#findcityInp').on('compositionend', function (e) { var keyWord = $.trim(e.target.value); if(keyWord.length>0){ var result = findCity(keyWord, cityData); initCities(result); bindEvent(); }else{ initCities(cityData); bindEvent(); } }); $('#findcityInp').on('change', function (e) { var keyWord = $.trim(e.target.value); console.log(keyWord) var result = findCity(keyWord, cityData); // console.log(result) initCities(result) }); //城市查询 function findCity(keyWord, data) { if (!(data instanceof Array)) return; var reg = new RegExp(keyWord); var arr = []; var obj ={ name:'', cities:[] } if(keyWord.length>0 && checkCh(keyWord)==false){ data.forEach((item, index) => { item.cities.forEach((childItem, childIndex) => { if (childItem.tags.match(reg)) { obj.name = childItem.tags[0]; obj.cities.push(childItem) arr=[obj] } }) }) }else if(keyWord.length ==1 && checkCh(keyWord)==true){ data.forEach((item,index)=>{ if(item.name == keyWord){ // console.log(item) arr.push(item) } }) } else{ arr = data } return arr; } function checkCh(str){ var RegExp = /^[a-zA-Z]{1}$/; return RegExp.test(str); } //点击右边描点 function toTarget(tag){ var text = $(tag).text(); location.href = "#"+text; $('.letterBox').html(text); $('.letterBox').show() setTimeout(function(){ $('.letterBox').hide() },1000) } //初始化城市列表 function initCities(cityData) { var g = ""; $('section').html(''); $('nav').html('') cityData.forEach((item, index) => { g += "<dl id=" + item.name + "><dt>" + item.name + "</dt>"; item.cities.forEach((citiesItem, citiesIndex) => { g += "<dd data-id=" + citiesItem.cityid + " data-name=" + citiesItem.name + " class='list' οnclick='clickAction()'>" + citiesItem.name + "</dd>" }) g += "</dl>" }) $('section').append(g); var g = $('nav').height() / 26; var f = ''; cityData.forEach((item, index) => { // f += '<a href="#' + item.name + '" rel="external nofollow" style="height:' + g + "px;line-height:" + g + 'px">' + item.name + "</a>" f+=`<div οnclick="toTarget(this)" style="height:${g}px;line-height:${g}px">${item.name}</div>` }) $('nav').append(f); } //点击城市列表某城市 function clickAction(){ $('.list').click(function (e) { console.log(e.target.getAttribute('data-name')) }) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年12月26日
2024年12月26日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]