极乐门资源网 Design By www.ioogu.com
本文实例为大家分享了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')) }) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
极乐门资源网 Design By www.ioogu.com
极乐门资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com
暂无原生js实现html手机端城市列表索引选择城市的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 《怪猎荒野》PS5Pro主机版对比:B测性能都不稳定
- 黄宝欣.1992-黄宝欣金装精选2CD【HOMERUN】【WAV+CUE】
- 群星.1996-宝丽金流行爆弹精丫宝丽金】【WAV+CUE】
- 杜德伟.2005-独领风骚新歌精选辑3CD【滚石】【WAV+CUE】
- 安与骑兵《心无疆界》[低速原抓WAV+CUE]
- 柏菲唱片-群星〈胭花四乐〉2CD[原抓WAV+CUE]
- 金典女声发烧靓曲《ClassicBeautifulSound》2CD[低速原抓WAV+CUE]
- 王杰1992《封锁我一生》粤语专辑[WAV+CUE][1G]
- 群星《一人一首成名曲 (欧美篇)》6CD[WAV/MP3][7.39G]
- 东来东往2004《回到我身边·别说我的眼泪你无所谓》先之唱片[WAV+CUE][1G]
- MF唱片-《宝马[在真HD路上]》2CD[低速原抓WAV+CUE]
- 李娜《相信我》新时代[WAV+CUE]
- 2019明达发烧碟MasterSuperiorAudiophile[WAV+CUE]
- 蔡幸娟.1993-相爱容易相处难【飞碟】【WAV+CUE】
- 陆虎.2024-是否愿意成为我的全世界【Hikoon】【FLAC分轨】