实现滚动条电梯效果

这篇具有很好参考价值的文章主要介绍了实现滚动条电梯效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天又学到了新知识,接下来来分享一下这个案例是如何做的

素材来自于黑马教程我把网址发在这里大家可以自行下载,里面包含素材,和图片等!

百度网盘 请输入提取码

首先还是咱们HTML部分,因为代码过多,想了解具体情况可以去看看教程,我们来挑一个来讲就行,data-name="new"这是意思是自定义标签,

这段代码是一个HTML标签,表示自定义导航的标签。其中,data-name="new"是一种HTML5中的自定义属性,用于在HTML元素上存储额外的信息。它可以用JavaScript来访问和操作。在自定义导航时,您可以使用这个属性来表示不同的导航标签名称,以便在后续操作中更方便地识别和处理。

然后我们需要一个公共样式command的样式表来设置公共样式,在设置一个我们自己的index样式,这里已经给我弄好了,就直接讲js部分,源码我会放在下面

我们先需要设置一个自执行的函数,来防止我们变量的污染,下面我们来获取两个元素,然后还是给我们窗口也就是Windows来加一个滚动事件

scrool是滚动条意思,这里是添加一个滚动事件,这里是做了一个判断,

document.documentElement.scrollTop是滚动到相应的位置,这里判断的依据就是,如果我这个n的值大于三百那么我们就显示,否则隐藏

最后这个操作做完之后我们需要做一个返回到顶部操作,还是先获取我们最后一个值,然后添加点击事件之后,然这个滚动条滚动到顶部,这里等于0就是滚动顶部的意思

然后进行我们第二个操作,还是定义一个自执行函数,然后我们来获取这个滚动条,来进行排他思想,这里也是进行一个判断,如果原来的active有这个对象,就移除,反之就不删除这个对象,然后这一个模块最后一个地方,我们需要获取到对应的大盒子,所以我们先来获取我们的自定义函数,然后根据小盒子来选大盒子,使用模板字符串来获取这些li的字符串,最后让我们来对应到相应的盒子位置

也就是

 document.documentElement.scrollTop=top

最后我们这个模块是让我们划到那个模块,哪个地方就自己亮色

还是需要获取我们四个小li的元素,因为我们HTML写了自定义函数,我们直接获取即可

然后还是来让我们的n来判断如果我们滚到了下一个模块的话,下一个地方就会自动高亮,这里也是使用双elseif来写,最后一个用else就限制死了,如果我们还需要加一个模块,那么就需要继续判断,反正最后也就是傻瓜式判断,很好理解!

<script>
  (function(){
    //获取元素
  const elevator=document.querySelector('.xtx-elevator')
  const entry=document.querySelector('.xtx_entry')
  //1.当页面滚动大于300像素 就显示电梯导航
  //2.给页面加滚动事件
  window.addEventListener('scroll',function(){
    const n=document.documentElement.scrollTop
    //被卷去头部大于三百
    elevator.style.opacity=n>=entry.offsetTop ? 1:0
  })
  //返回到顶部
  const backTop=document.querySelector('#backTop')
  backTop.addEventListener('click',function(){
    document.documentElement.scrollTop=0
  })
  })();
//2.点击页面可以滑动
  (function(){
   const list=document.querySelector('.xtx-elevator-list')
   list.addEventListener('click',function(e){
    //排他思想
    //先移除其他的类
    //先获取这个类名
    //判断,如果原来有active类的对象,就移除类,如果开始没有对象,就不删除,所以不报错。
    if(e.target.tagName ==='A'&& e.target.dataset.name){
      const old=document.querySelector('.xtx-elevator .active')
      //判断
      if(old)old.classList.remove('active')
        //添加这个元素
        e.target.classList.add('active')
        //获取自定义属性new topic
        //console.log(e.target.dataset.name)
        //根据我们的小盒子来选定大盒子
        //获取对应的大盒子
        const top=document.querySelector(`.xtx_goods_${e.target.dataset.name}`).offsetTop
        //让页面对应到相应的位置
        document.documentElement.scrollTop=top
    }
   })
//3.页面滚动,可以根据大盒子选小盒子加active类
window.addEventListener('scroll',function(){
  const old=document.querySelector('.xtx-elevator .active')
      //判断
    if(old)old.classList.remove('active')
    //获取四个大盒子
    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 n=document.documentElement.scrollTop
    if(n>=news.offsetTop&&n<popular.offsetTop){
      //选中第一个小盒子
      document.querySelector('[data-name=new]').classList.add('active')
    }else if(n>=popular.offsetTop&&n<brand.offsetTop){
      document.querySelector('[data-name=popular]').classList.add('active')
    }else if(n>=brand.offsetTop&&n<topic.offsetTop){
      document.querySelector('[data-name=brand]').classList.add('active')
    }else if(n>=topic.offsetTop){
      document.querySelector('[data-name=topic]').classList.add('active')
    }
})
    


  })()
 </script>

由于代码里及其繁多!!,毕竟也是我之前自学学的第一个布局案例,所以我特意告诉大家素材位置就在jsAPI里面第三天的素材里面有个电梯的素材,直接文件夹下载即可!

喜欢的话就记得三连噢!!!,谢谢大家文章来源地址https://www.toymoban.com/news/detail-474268.html

到了这里,关于实现滚动条电梯效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity实现数字滚动动画效果

    要在 Unity 中实现数字滚动动画效果,你可以使用以下步骤: 创建一个新的 Unity 项目。 在场景中添加一个 UI 文本控件。 在 C# 脚本中,使用 coroutine 实现动画效果。 在每一帧中更新 UI 文本的数字,并通过计算得出下一个数字的位置。 在动画结束后,使用 StopCoroutine 停止动画

    2024年02月10日
    浏览(49)
  • Css实现浏览滚动条效果

    也是有大半个月没有更新文章了,大部分时间都在玩,然后就是入职的事。今天就更新一个小知识,刷抖音的时候看到的,感觉还不错。 关键属性animation-timeline:动画名称; 用于控制动画的时间轴。它可以让你在一个元素上同时播放多个动画,控制它们的开始时间和持续时间,

    2024年02月08日
    浏览(38)
  • 【UGUI】如何实现自动滚动文本效果

           当我们在制作UI使用Text时,如果文本信息过长,有两种处理方式,一种是换行展示,另一种则是滚动展示,下面博主将给大家介绍如何制作自动滚动文本。        第一步,创建一个Image(GameObject UI Image),可以看到出现了一个白色的框框,改变框框的尺寸,以便进行文

    2023年04月25日
    浏览(51)
  • Unity 如何实现卡片循环滚动效果

    功能需求如图所示,点击下一个按钮,所有卡片向右滚动,其中最后一张需要变更为最前面的一张,点击上一个按钮,所有卡片向左滚动,最前面的一张需要变更为最后一张,实现循环滚动效果。 最中间的一张表示当前选中项,变更为选中项的滚动过程中,需要逐渐放大到指

    2024年02月03日
    浏览(53)
  • 实现对一个元素的滚动条进行平滑滚动至顶部的动画效果

    1.elementUI中的平滑滚动至顶部的动画效果代码 2.将上面的代码简化 3.继续简化代码 使用 Element.scrollTo 方法并使用 scroll-behavior: smooth 的简化代码示例: 首先,在你的CSS样式表中加入以下代码: 这会将平滑滚动的效果应用到整个页面。 然后,使用 scrollTo 方法在JavaScript中触发滚

    2024年02月11日
    浏览(44)
  • LVGL实现按钮菜单无限滚动的效果

    lvgl版本:8.1.1 视频演示:哔哩哔哩 项目地址:Simple Monitor

    2024年02月11日
    浏览(43)
  • JavaFx 实现水平滚动文本(跑马灯效果)

    原文地址: JavaFx 实现水平滚动文本(跑马灯效果) - Stars-One的杂货小窝 本文是以TornadoFx框架进行编写,各位使用JavaFx可以参考 代码已经封装在common-controls库中 实现原理就是利用了JavaFx里的动画效果去修改scrollpane的translateX属性,原本想在text上改造的,发现文字过多就不行了,最终还

    2023年04月27日
    浏览(52)
  • el-table表格实现自动滚动效果

    table页面的内容如果超出设定的height会出现自动无限滚动的效果,如下所示: 先给el-table一个ref属性 然后获取到这个属性 在mounted阶段执行scrollFun函数,通过setTnterval定时器来实现动态滚动效果,代码如下: 如果出现列表字段过长时,可使用tooltip-effect=“dark” 搭配 show-overf

    2024年02月13日
    浏览(41)
  • el-table如何实现自动滚动效果

    需求:表格自动向上滚动,要有一个停顿的效果。 效果图如下:  实现过程:获取当前表格挂载后的真实DOM,并且获取到表格中承载数据的div元素,拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果。 具体代码如下:

    2024年02月12日
    浏览(56)
  • flutter web项目中鼠标拖动无法实现滚动效果

    在完成web的flutter项目时,发现ListView列表使用鼠标拖动无法滚动,尝试发现使用触摸板可以实现滚动,但如果用户使用没有触摸板的电脑或列表为横向滚动时就无法实现项目需求了,在解决问题的过程中尝试了以下方法: 1.尝试使用点击事件模拟滑动手势 如果web项目中无法使

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包