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

易语言网站做软件教你做面食的网站

易语言网站做软件,教你做面食的网站,专业做网站的页面设计,陕西住房与城乡建设厅网站文章目录 1、案例:电梯导航1.1 需求分析与实现1.2 关键思路梳理 2、属性选择器补充 1、案例:电梯导航 1.1 需求分析与实现 需求:点击不同的模块,页面可以自动跳转不同的位置 模块分析: 页面滚动到对应位置,导航显示…

文章目录

  • 1、案例:电梯导航
    • 1.1 需求分析与实现
    • 1.2 关键思路梳理
  • 2、属性选择器补充

1、案例:电梯导航

1.1 需求分析与实现

需求:点击不同的模块,页面可以自动跳转不同的位置

模块分析:

  • 页面滚动到对应位置,导航显示,否则隐藏模块
  • 点击导航对应小模块,页面 会跳到对应大模块位置
  • 页面滚动到对应位置,电梯导航对应模块自动发生变化
//.....html见文章关联压缩包</div></div></div><!-- 电梯 --><div class="xtx-elevator"><ul class="xtx-elevator-list"><li><a href="javascript:;" data-name="new">新鲜好物</a></li><li><a href="javascript:;" data-name="popular">人气推荐</a></li><li><a href="javascript:;" data-name="brand">热门品牌</a></li><li><a href="javascript:;" data-name="topic">最新专题</a></li><li><a href="javascript:;" id="backTop"><i class="sprites"></i>顶部</a></li></ul></div><script>// 每做完一个功能,用立即执行函数封装下,防止变量污染// 需求1、实现页面滚动到对应的位置,电梯导航显示,否则隐藏(function () {const elevator = document.querySelector('.xtx-elevator')// 大盒子2const entry = document.querySelector('.xtx_entry')window.addEventListener('scroll', function () {const n = document.documentElement.scrollTopif (n >= entry.offsetTop) {elevator.style.opacity = 1  // opacity即淡入淡出,温柔版的display} else {elevator.style.opacity = 0}// elevator.style.opacity = n >= 300 ? 1 : 0})})();// 需求2、实现点击⬆️,返回顶部(function () {const backTop = document.querySelector('#backTop')backTop.addEventListener('click', function () {//document.documentElement.scrollTop = 0window.scrollTo(0, 0)})})();// 需求3、实现点击电梯导航每一楼,跳转到对应的位置并且电梯导航对应楼层高亮(function () {const list = document.querySelector('.xtx-elevator-list')// 事件委托,不给每一个li绑定事件,给li的父元素ul绑定list.addEventListener('click', function (e) {// 导航栏的一楼 返回顶部,不参与这个需求,自己有返回顶部功能if (e.target.tagName === 'A' && e.target.dataset.name) {const old = document.querySelector('.xtx-elevator-list .active')// 刚开始,没有人高亮选中,if (null)就是falseif (old) {old.classList.remove('active')}// 被点击的当前楼层高亮e.target.classList.add('active')// 实现点击电梯对应楼层,跳转对应位置,其实就是把html滚动的scrollTop改成对应盒子的offsetTopconst className = e.target.dataset.name// 选出对应的大盒子const bigDiv = document.querySelector(`.xtx_goods_${className}`)// 让页面滚动document.documentElement.scrollTop = bigDiv.offsetTop}})// 需求4、实现页面滚动到对应的位置,对应的电梯导航那一项就高亮(根据大盒子选择小盒子)window.addEventListener('scroll', function () {// 先移除已有的高亮const old = document.querySelector('.xtx-elevator-list .active')// 刚开始,没有人高亮选中,if (null)就是falseif (old) {old.classList.remove('active')}// 当页面的scrollTop大于等于div大盒子1的offsetTop,并且小于等于div大盒子2的offsetTop,那就是滑动到对应的div1了const news = document.querySelector('.xtx_goods_new')         //新鲜好物大盒子const popular = document.querySelector('.xtx_goods_popular')  //人气推荐大盒子const brand = document.querySelector('.xtx_goods_brand')      //热门品牌大盒子const topic = document.querySelector('.xtx_goods_topic')      //最新专题大盒子const scrollTop = document.documentElement.scrollTopif (scrollTop >= news.offsetTop && scrollTop < popular.offsetTop) {// 属性选择器选择电梯的对应的那一楼document.querySelector('[data-name=new]').classList.add('active')} else if (scrollTop >= popular.offsetTop && scrollTop < brand.offsetTop) {document.querySelector('[data-name=popular]').classList.add('active')} else if (scrollTop >= brand.offsetTop && scrollTop < topic.offsetTop) {document.querySelector('[data-name=brand]').classList.add('active')} else if (scrollTop >= topic.offsetTop) {document.querySelector('[data-name=topic]').classList.add('active')}})})();</script></body></html>

效果:

电梯导航栏效果

1.2 关键思路梳理

  • 每个功能点,写完后可以放到自执行函数里面,防止变量污染
  • 实现页面滚动到对应的位置,电梯导航显示,否则隐藏,本质上是html页面的scrollTop和你需要的元素的offsetTop的大小比较
  • 回到顶部,即document.documentElement.scrollTop = 0
  • 点击电梯的每一层,跳转到对应的大盒子,使用事件委托最好,不然得给每一层绑定点击事件,而这个跳转,则是通过让html滚动的scrollTop改成对应盒子的offsetTop实现,可以看到,电梯每一层的对象的自定义属性,和其对应的div大盒子的类选择器名字有关系,由此,可以通过电梯每一层的小盒子找到其对应的大盒子,这是自定义属性的一个运用

在这里插入图片描述

  • 最后一个,实现页面滚动到对应的位置,对应的电梯导航那一项就高亮,实际就是根据大盒子选择小盒子,思路是:当页面滚动了,先移除所有小li 里面a 的状态 active 防止有多个 active,再获取所有的大盒子,判断页面滚动的距离document.documentElement.scrollTop,和每一个div大盒子offsetTop的大小关系,从而锁定页面现在滑动到哪儿了,再给对应的电梯的那一楼添加active样式即可

2、属性选择器补充

如下,有两个input标签,使用属性选择器选择其中一个input标签:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 选择type属性是text的input标签 */input[type=text] {color: red;}/* 选择有value属性的input标签 */input[value] {color: red;}</style>
</head><body><input type="text" value="123" data-id="0" data-name="tom"><input type="password"><script>// 属性选择器,用自定义属性const input = document.querySelector('input[value]')console.log(input.dataset)console.log(input.dataset.name)</script>
</body></html>

效果:

在这里插入图片描述
自定义属性的使用:
在这里插入图片描述


文章转载自:

http://H22AF3D8.Lhhkp.cn
http://xGK2Na7M.Lhhkp.cn
http://nqAyZlaX.Lhhkp.cn
http://hsFf5opr.Lhhkp.cn
http://obFM8yEL.Lhhkp.cn
http://Dg3hEON8.Lhhkp.cn
http://xphgFAat.Lhhkp.cn
http://cGuatMja.Lhhkp.cn
http://Vd1bNrQC.Lhhkp.cn
http://svQC1Aol.Lhhkp.cn
http://1xxTHJ4v.Lhhkp.cn
http://5J7IE9LV.Lhhkp.cn
http://UkSkR24i.Lhhkp.cn
http://EKDpxrO2.Lhhkp.cn
http://dAOsGc1D.Lhhkp.cn
http://6oBNOign.Lhhkp.cn
http://Inqo0kkm.Lhhkp.cn
http://wu4KwJU4.Lhhkp.cn
http://oOaJTB2W.Lhhkp.cn
http://UWCmIjQ8.Lhhkp.cn
http://UMtKP5Sv.Lhhkp.cn
http://WrVIBCEF.Lhhkp.cn
http://Rq36YDZZ.Lhhkp.cn
http://Bz4gi9NR.Lhhkp.cn
http://Z6FhMy6T.Lhhkp.cn
http://rmgBslmR.Lhhkp.cn
http://WeKhyNAM.Lhhkp.cn
http://CHGcO3hy.Lhhkp.cn
http://muXyTEQe.Lhhkp.cn
http://nIsse1Ed.Lhhkp.cn
http://www.dtcms.com/wzjs/722671.html

相关文章:

  • 怎么做可上传图片的网站中原建设信息网 网站
  • 深圳做营销网站建设六安论坛招聘信息
  • 网站建设中html代码花生壳怎么建设购物网站
  • 网站获取用户开发导航app多少钱
  • 做网站优化竞价区别巴中网站建设培训班
  • 我要做网站做网站临泉手机写代码的软件
  • ppt模版模板免费网站wordpress 所有文章404
  • 网站多语言包深圳对留学生创业政策
  • 注册公司网站模板长沙官网制作
  • 免费素材网站素材库河南电力建设工程公司网站
  • 德惠网站建设pc端网站建设电话
  • 羊肉口报关做网站wordpress链接图像地址
  • 电子商务网站建设与管理试卷6邢台制作
  • 潍坊视频类网站建设潍坊seo培训
  • 揭阳网站制作套餐首页关键词是不是一个网站的核心关键词所在
  • 没有备案的网站怎么挂广告厦门网页建站申请费用
  • 网站开发+百度编辑器网站开发用什么字体
  • 事务所网站制作方案网络规划设计师多少分通过
  • 线上注册公司是在哪个网站甘肃建设厅执业资格注册中心网站
  • 网站开发技术总监面试题巴中哪里做网站
  • 广州网站建设菲利宾短网址还原工具
  • 长沙网站建设要多少钱网站怎么做图片动态图片不显示
  • 网站字体字号移动软件开发专业
  • 网站建设国家和行业标准长沙最好玩的地方排名
  • wordpress怎样增加移动端莱阳seo外包
  • vps网站打开速度调节洛阳网站备案
  • 科技因子网站建设方案ps做网站字号大小
  • 上传网站模板品牌建设简介
  • 有没有做定制衣服的网站网站的互动功能
  • 沈阳建站免费模板宁波个人网站建设