当前位置: 首页 > news >正文

安徽汽车网网站建设网站被百度收录很重要

安徽汽车网网站建设,网站被百度收录很重要,品牌理念设计企业网站建设,ftp如何导入wordpress 主题js实现手机通讯录效果图需求需求一#xff1a;锚点通过#id配合a标签使用css中scroll-behavior属性的使用需求二需求三获取汉字拼音的首字母方法1#xff1a;使用插件#xff0c;这里推荐pinyin-pro方法2#xff1a;使用unicode去重数组中冗余的对象法一#xff1a;用Map去… js实现手机通讯录效果图需求需求一锚点通过#id配合a标签使用css中scroll-behavior属性的使用需求二需求三获取汉字拼音的首字母方法1使用插件这里推荐pinyin-pro方法2使用unicode去重数组中冗余的对象法一用Map去重法二用双层for循环配合splice使用代码实现Htmlcssjs需要引入的工具代码效果图 需求 手机通讯录这样的功能在很多场景下都是可以见到的多出现在移动端它通常有以下特点 锚点 点击右侧的英文字母会跳转到相应的区块并且在此过程页面不刷新智能识别左侧的地名或者人名。在相应首字母不存在的情况下不会出现相应的首字母列表比如下图没有字母E,F对应的人名或则地名则不显示EF空列表 数据流精准定位可以随意添加数据自动根据人名或者地名汉语拼音的第一个首字母来准确定位并将当前人名或地名精准存放在相应的字母列表当中 需求一锚点 锚点是css里一个非常神奇的功能。实现这样的功能我一般做好以下两点基本就是完美的了。 通过#id配合a标签使用 nava href#11/aa href#22/aa href#33/aa href#44/aa href#55/a/navdivdiv id11/divdiv id22/divdiv id33/divdiv id44/divdiv id55/div/div这一看就明白a标签用于右侧字母导航栏。a标签里href的属性值用#id表示分别与左侧列表里的div的id名字一一对应即可实现点击跳转这一特点也叫锚点这在css里还是挺高级的。 css中scroll-behavior属性的使用 使用这个属性可以让你的锚点跳转看起来更加丝滑 :root{font-size: 2rem;scroll-behavior: smooth;}MDN官网是这样介绍的 当用户手动导航或者 CSSOM scrolling API 触发滚动操作时CSS 属性 scroll-behavior 为一个滚动框指定滚动行为其他任何的滚动例如那些由于用户行为而产生的滚动不受这个属性的影响。在根元素中指定这个属性时它反而适用于视窗。 /* Keyword values */ scroll-behavior: auto; scroll-behavior: smooth;/* Global values */ scroll-behavior: inherit; scroll-behavior: initial; scroll-behavior: unset;换句话说如果不使用这个属性那么在锚点跳转过程中会突然跳转到相应位置非常生硬用户体验感比较差。 如果使用这个属性在锚点跳转过程中会有过渡效果。使得整个过程看起来更加合理丝滑。 需求二需求三 先分析这这两个需求应该如何实现 智能识别以及数据流精准定位 1. 先获取地名或者人名汉字拼音的第一个汉字的首字母 2. 将此首字母打印没有问题然后将其放在一个变量里 3. 准备26个英文字母将这个字符串分割成26个元素然后遍历一下这个数组。 4. 遍历第一个汉字拼音的首字母 5. 再拿26个字母 与 第一个汉字拼音的首字母比较 6. 如果两个字母相同将第一个汉字拼音的首字母 对应的地名 放入一个新数组 7. 做个判断。当某个首字母对应的汉字为空则不渲染这个字母列表 8. 如果数组中的对象有重复调用去重函数 9. 输出 分析 难点1这里面循环判断输出都没有什么难以实现的难度不大。难的是如何将汉字转化为拼音并获取到拼音的首字母 难点2如果出现重复怎么去重 难点3有没有别的方式优化程序可以跳过去重 获取汉字拼音的首字母 方法有二 方法1使用插件这里推荐pinyin-pro script srchttps://unpkg.com/pinyin-pro3.12.0/dist/index.js/script这是一款具有非常强大的汉字转换方法的插件用路径在线引入即可使用。并且pinyin-pro 支持各种浏览器以及 Nodejs 环境运行。 方法2使用unicode unicode这是一种文字编码标准是以\u6211\u559c\u6b22\u4f60等形式出现的 eg \u6211\u559c\u6b22\u4f60 我喜欢你 \u6211\u7231\u4f60 我爱你 \u4f60\u597d\u5e05\u554a 你好帅啊 \u6211\u6211\u559c\u6b22\u5403\u70b8\u9171\u9762 我喜欢吃炸酱面 这就是uniode我个人更喜欢用第二种方式。将文字编码打包成一个文件需要的时候随时本地调用即可非常安全。 去重数组中冗余的对象 这里推荐两种去重方法 法一用Map去重 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0meta http-equivX-UA-Compatible contentieedgetitle/title /head body/body /html scriptlet obj [{ name: 米面, id: 1 },{ name: 牛肉, id: 2 },{ name: 蔬菜, id: 3 },{ name: 水果, id: 3 },{ name: 饮料, id: 1 },{ name: 咖啡, id: 4 },{ name: 茶叶, id: 3 }];const map new Map();const newArr obj.filter(csdn !map.has(csdn.id) map.set(csdn.id, 1));console.log(newArr); /script输出结果 法二用双层for循环配合splice使用 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0meta http-equivX-UA-Compatible contentieedgetitle/title /head body/body /html scriptlet obj [{ name: 米面, id: 1 },{ name: 牛肉, id: 2 },{ name: 蔬菜, id: 3 },{ name: 水果, id: 3 },{ name: 饮料, id: 1 },{ name: 咖啡, id: 4 },{ name: 茶叶, id: 3 }];function fn1(tempArr) {for (let i 0; i tempArr.length; i) {for (let j i 1; j tempArr.length; j) {if (tempArr[i].id tempArr[j].id) {tempArr.splice(j, 1);j--;};};};return tempArr;};console.log(fn1(obj)); /script输出结果 两种去重方法得到的结果是一模一样的。这两种方法可以复制后直接调用。值得一提的是除了Map还有set 还有for of /forEach /for in等方法虽然各有特点但都有自己的最合适的使用场景详情可阅读前文有详细介绍。 我个人更喜欢用第二种方法因为用双层for循环配合splice去重的方法是最不耗费性能的。虽然结构复杂让人看的恶心但毕竟“省钱”。 代码实现 按照分析的思路去执行即可怎么想就怎么做 程序如人生 Htmlcss !doctype html htmlheadmeta charsetutf-8title/titlestyle:root{font-size: 2rem;scroll-behavior: smooth;}#righta {display: block;text-decoration: none;color: black;text-align: center;}#right {position: fixed;right: 0.2rem;top: 1vh;font-size: .7rem;display: flex;flex-wrap: wrap;align-items: center;width: .5rem;padding: 0% 1rem;text-align: center;height: 100vh;background-color: greenyellow;overflow-y: scroll;}#list p {background: -webkit-linear-gradient(left, #2b80ff, #8098aa);}#list {height: 500vh;font-size: 2rem;}/style/headbodydiv idlist!-- pA/pspan/spanspan/spanpB/pspan/spanspan/span --/divdiv onclickdata() idkl styledisplay: block;position: absolute;top: 0%;6button来吧展示/button/divdiv idrighta href#AA/aa href#BB/aa href#CC/aa href#DD/aa href#EE/aa href#FF/aa href#GG/aa href#HH/aa href#II/aa href#JJ/aa href#KK/aa href#LL/aa href#MM/aa href#NN/aa href#OO/aa href#PP/aa href#QQ/aa href#RR/aa href#SS/aa href#TT/aa href#UU/aa href#VV/aa href#WW/aa href#XX/aa href#YY/aa href#ZZ/a/div/body htmljs需要引入的工具代码 script src./data.js/script //人名地名的假数据script src./unicode.js/script //汉字转换拼音的打包文件含有编码和方法script src./jquery-3.6.1.js/script //引入jquery文件方便简化代码这三个文件比较大我放在资源里了可以免费下载希望对大家有帮助 其次还需要一个实现功能的js文件 注释也是必不可少的 script// ----------数组中相同对象去重选择两层for循环配合splice使用// function deWeight(arr) {// for (var i 0; i arr.length - 1; i) {// for (var j i 1; j arr.length; j) {// if (arr[i].one arr[j].one) {// arr.splice(j, 1);// j--;// }// }// }// return arr;// }//---------------------function data() {document.querySelector(#kl).style.display none// --------把地名拼音第一个首字母放到a数组里let a [];for (let j 0; j arrs.length; j) {var chinaName arrs[j].name;var easyName pinyin.getCamelChars(chinaName);// console.log(easyName);// console.log(easyName); //每个地名拼音的首字母缩写 a.push(easyName[0]) //第一个汉字拼音的首字母}//------------// let obj {}let add [];//-----------遍历一下26个字母let strarr ABCDEFGHIJKLMNOPQRSTUVWSYZ.split();for (let i 0; i strarr.length; i) {//-------------//----------遍历第一个汉字拼音的首字母let names [];for (let j 0; j a.length; j) {//----------//----------26个字母 与 第一个汉字拼音的首字母比较if (strarr[i] a[j]) {//----------如果两个字母相同将第一个汉字拼音的首字母 对应的地名 放入数组names egB 北京 B北海道 names [北京北海道]names.push(arrs[j].name)//----------console.log(names);}//----------}if (names.length ! 0) {//----------B 北京 oneB two[北京北海道] B 北海道 oneB two[北京北海道]let obj {one: strarr[i],two: names}//----------//----------将对象放入数组add.push(obj)// console.log(add);//----------}}console.log(add);//----------//----------调用去重函数将数组里重复的对象去除// deWeight(add);//----------//----------输出let str ;for (let i 0; i add.length; i) {str p id ${add[i].one}${add[i].one}/pspan${add[i].two.join(br/)}/span}$(#list).html(str)//----------}// data()/script创作不易如果对你有帮助请三连支持。
http://www.hkea.cn/news/14341479/

相关文章:

  • 自己做的网站打不开光明网站建设
  • 网站外链坏处公司网站建设是哪个部门的事情
  • 网站建设列表音乐网站需求分析
  • 网站后端技术语言延安网站建设费用
  • wordpress网站评论插件html5响应式手机网站
  • 全国建筑网站市场推广有哪些
  • 大学生做网站怎么赚钱北京网线多少钱一年
  • 普洱建设工程网站做网站花都
  • 深圳网站建设与推广最好看免费观看高清大全英雄联盟
  • 网站开发安卓开发自己怎么开网店的步骤
  • 汽车电子商务网站建设网站的请求服务做优先级
  • 成都建设网站制作常德网络建站
  • 南阳教育论坛网站建设销售计划方案怎么写
  • 网站建设的行业代码是多少钱网络推广岗位职责和任职要求
  • 网站建设个人网站网站项目规划与设计方案
  • 网站校园推广案例网页设计茶叶网站建设
  • 怎么查看网站的点击率网站优化营销
  • 注册网站安全吗wordpress支付界面出现500
  • 哪个网站可以做私单做简历好的网站
  • 网站建设氺首选金手指12网络营销服务的内容
  • 亦庄专业网站开发公司wordpress技术文章
  • 筑巢网站建设网站建设中 模板素材
  • 齐鲁建设网站网站建设的几大要素
  • wordpress快递模板下载常州网站排名优化
  • 品牌建设方案和思路辽源seo
  • 郑州网站设计制作wordpress+登录页加密
  • 做网站软件排名网站说明页命名
  • 网站建设会遇到哪些问题石家庄网页定制开发
  • 制作网站的过程细节网站域名所有权 查询
  • 怎么给网站做网站地图教务系统登录入口