zoukankan      html  css  js  c++  java
  • anchoranimation

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        :root{
          --sidebar-item-height: 36px
        }
        html,body,ul{padding: 0; margin: 0; font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;}
        .side{
          width: 200px;
          list-style-type: none;
          z-index: 5;
        }
        .side li {
          height: var(--sidebar-item-height);
          line-height: var(--sidebar-item-height);
          padding-left: 20px;
          color: #007572;
          position: relative;
        }
        .main>div{
          display: inline-block;
          vertical-align: top;
        }
        .sidebar{
          position: fixed;
          left: 0;
          top: 0;
          right: 0;
          bottom: 0;
          z-index: 10;
        }
        .sidebar-div__position{
          opacity: 0;
          height: var(--sidebar-item-height);
          width: 180px;
          padding-left: 20px;
          background-color: #e3f8f5;
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          transition: all .25s linear;
          z-index: -99;
        }
        .sidebar-div__position::after{
          content: '';
          position: absolute;
          left: 0;
          top:0;
          bottom: 0;
          width: 2px;
          background-color: #007570;
        }
        .content{
          margin: 0 0 350px 220px;
        }
        .content h3{
          background-color: #e3f8f5;
        }
      </style>
      <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
    </head>
    <body>
        <div class="main">
          <div class="sidebar">
            <ul class="side">
              <li>A-1</li>
              <li>A-2</li>
              <li>A-3</li>
              <li>A-4</li>
              <li>A-5</li>
            </ul>
            <div class="sidebar-div__position"></div>
          </div>
          <div class="content">
            <h1>这是标题</h1>
            <h3>A-1</h3>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <h3>A-2</h3>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <h3>A-3</h3>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <h3>A-4</h3>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <h3>A-5</h3>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
            <p>
              这本书讲了一个真实的故事。一位社会学的老教授,在患病去世前的十几周里,在每周的星期二,约见自己之前的一位学生,向他传授人生中的最后一课:讨论生活的意义,关于家庭、工作、感情、衰老、死亡、遗憾、原谅等重大议题。这本书只有200页厚,但我觉得可以继续压缩到100页,因为书中做了太多的背景交代和铺垫,尤其是老教授的身体逐渐衰败的过程,他的生命火烛在一点点的熄灭,几乎每一个章节都花了不少篇幅描述。作者的核心观念还是奉献爱,爱身边的人,关注自己所在的社区。这和之前看到的一个TED关于幸福的演讲是类似的,只有和重要的人建立良好的亲密关系,才会感觉到幸福。
            </p>
          </div>
        </div>
    
        <script type="text/javascript">
          (() => {
            const sidebarItemHeight = 36;
            const positionEl = document.querySelector('div.sidebar-div__position');
            const elements = Array.from(document.querySelectorAll('ul.side li'));
            const paragraphs = Array.from(document.querySelectorAll('.content h3'));
            for(let i = 0; i < elements.length; i++){
              ((el, index) => {
                el.addEventListener('click', e => {
                  console.log('click sidebar', e.target, 'index', index);
                  window.scrollTo(0, paragraphs[index].offsetTop);
                }, false);
              })(elements[i], i);
            }
    
            // 计算滚动条滚动方向使用
            let beforeScrollTop = document.body.scrollTop;
            let directEnum = {
              down: 'down',
              up: 'up'
            };
    
            /**
             * 获取滚动条滚动方向
             */
            const getScrollDirection = (elements) => {
              const elRect = elements[0].getBoundingClientRect();
              const top = Math.abs(elRect.top);
              let direction = top > beforeScrollTop
                ? directEnum.down
                : directEnum.up;
              console.log(direction, beforeScrollTop, top);
              beforeScrollTop = top;
              
              return direction;
            };
    
            // 绑定滚动事件
            window.addEventListener('scroll', _.debounce((e) => {
              let direction = getScrollDirection(paragraphs);
    
              let index = direction === directEnum.down
                ? -1
                : (paragraphs.length - 1);
              console.log('init index', index);
              for(let h3 of paragraphs){
                const rect = h3.getBoundingClientRect();
                const paragraphHeight = 25;
                console.log('h3-', h3.innerText, 'top', rect.top);
    
                if (direction === directEnum.down && rect.top < paragraphHeight * 2) {
                  index += 1;
                  console.log(direction, '[ hit ]', 'index', index);
                } else if (direction === directEnum.up && rect.top > paragraphHeight * 2) {
                  index -= 1;
                  console.log(direction, '[ hit ]', 'index', index);
                } else {
                  console.log(direction, '[ miss ]', 'index', index);
                }
              }
    
              console.log('current index', index);
              if (index >= 0) {
                positionEl.style.opacity = 1;
                positionEl.style.top = `${(index) * sidebarItemHeight}px`;
              } else {
                positionEl.style.opacity = 0;
                positionEl.style.top = `0px`;
              }
            }, 100), false);
          })();
        </script>
    </body>
    </html>
    本博客内容,如需转载请务必保留超链接。

    Contact Me:Mail此处省略好几个字...
  • 相关阅读:
    减肥 day1
    这两天的学习内容
    小马激活工具激活系统导致系统崩溃
    mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
    JDK 动态代理实现原理
    php ajax提交post请求出现数组被截断情况的解决方法
    mac OS X下git代码行统计命令
    mac OS X下安装Redis及Thinkphp3.1使用Redis
    linux服务器git pull/push时提示输入账号密码之免除设置
    linux服务器修改ftp默认21端口方法
  • 原文地址:https://www.cnblogs.com/jroger/p/15246645.html
Copyright © 2011-2022 走看看