js实现淘宝右侧导航栏功能

简介: 本章和大家分享的是模拟淘宝右侧导航栏的一个小功能。左侧是商品内容,右侧是一个导航栏,当页面向下滚动的时候右侧导航栏也跟着移动

本章和大家分享的是模拟淘宝右侧导航栏的一个小功能。

左侧是商品内容,右侧是一个导航栏,当页面向下滚动的时候右侧导航栏也跟着移动

b735e825fb1942d6bd052b91c8b7e067.png

当黄色内容区域到达顶部的时候,右侧导航栏变为固定的

f98f4a443c1d47b49cce80addc2a8a1f.png

当黑色内容区到达顶部时,右侧导航栏的返回顶部按钮显示

b837918c1b024b5db07068be568b4e31.png

点击返回顶部内容区回到原来的位置,右侧导航栏也取消固定回到原来的位置。

具体实现:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      .slider_bar{
        position: absolute;
        width: 70px;
        height: 20px;
        border: 1px solid red;
        top: 500px;
        right: 0;
      }
      span{
        display: flex;
        border: 1px solid red;
      }
      .goBack{
        display: none;
      }
      .non{
        width: 500px;
        height: 200px;
        border: 1px solid red;
      }
      .header{
        width: 500px;
        height: 200px;
        background-color: aqua;
        margin-top: 0;
      }
      .banner{
        width: 500px;
        height: 500px;
        background-color: bisque;
      }
      .main{
        width: 500px;
        height: 1000px;
        background-color: black;
      }
    </style>
  </head>
  <body>
    <div class="slider_bar">
      <span class="yi">1</span>
      <span class="er">2</span>
      <span class="san">3</span>
      <span class="goBack">返回顶部</span>
    </div>
    <div class="non"></div>
    <div class="header"></div>
    <div class="banner"></div>
    <div class="main"></div>
    <script>
      var yi = document.querySelector('.yi');
      var er = document.querySelector('.er');
      var san = document.querySelector('.san');
      var sliderbar = document.querySelector('.slider_bar');
      var banner = document.querySelector('.banner');
      var bannerTop = banner.offsetTop;
      var sliderbarTop = sliderbar.offsetTop - bannerTop;
      var main = document.querySelector('.main');
      var goBack = document.querySelector('.goBack');
      var mainTOP = main.offsetTop;
      console.log(sliderbarTop);
      document.addEventListener('scroll', function(){
        if(window.pageYOffset >= bannerTop) {
          sliderbar.style.position = 'fixed';
          sliderbar.style.top = sliderbarTop + 'px';
        } else {
          sliderbar.style.position = 'absolute';
          sliderbar.style.top = '500px';
        };
        if(window.pageYOffset >= mainTOP){
          goBack.style.display = 'block';
        } else {
          goBack.style.display = 'none';
        };
      });
      goBack.addEventListener('click', function(){
        window.scroll(0,0);
      })
    </script>
  </body>
</html>
相关文章
|
1月前
|
JavaScript 前端开发
JavaScript分页功能
JavaScript分页功能
|
14天前
|
JavaScript
js实现简洁实用的网页计算器功能源码
这是一款使用js实现简洁实用的网页计算器功能源码。可实现比较基本的加减乘除四则运算功能,界面简洁实用,是一款比较基本的js运算功能源码。该源码可兼容目前最新的各类主流浏览器。
23 2
|
30天前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
1月前
|
JavaScript 前端开发 API
|
1月前
|
JavaScript API UED
vue.js怎么实现全屏显示功能
【10月更文挑战第7天】
19 1
|
1月前
|
资源调度 JavaScript UED
如何使用Vue.js实现单页应用的路由功能
【10月更文挑战第1天】如何使用Vue.js实现单页应用的路由功能
|
1月前
|
JavaScript 搜索推荐
JS中的模糊查询功能
JS中的模糊查询功能
27 1
|
1月前
|
前端开发 JavaScript
使用 JavaScript 实现图片预览功能
使用 JavaScript 实现图片预览功能
25 0
|
1月前
|
JavaScript 安全 前端开发
js实现复制功能
js实现复制功能
18 0
用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项