<!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>

anchor-animation的更多相关文章

  1. iOS——Core Animation 知识摘抄(一)

    本文是对http://www.cocoachina.com/ios/20150104/10814.html文章的关键段落的摘抄,有需要的看原文 CALayer和UIView的关系: CALayer类在 ...

  2. 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...

  3. Core Animation编程指南

    本文是<Core Animation Programming Guide>2013-01-28更新版本的译文.本文略去了原文中关于OS X平台上Core Animation相关内容.因为原 ...

  4. [iOS Animation]-CALayer 性能优化

    性能优化 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...

  5. [iOS Animation]-CALayer 显示动画

    显式动画 如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆 上一章介绍了隐式动画的概念.隐式动画是在iOS平台创建动态用户界面的一种直接方式,也是UIKit动画机制的基础,不过它并不能涵盖所有的动 ...

  6. [iOS Animation]-CALayer 图层几何学

    图层几何学 不熟悉几何学的人就不要来这里了 --柏拉图学院入口的签名 在第二章里面,我们介绍了图层背后的图片,和一些控制图层坐标和旋转的属性.在这一章中,我们将要看一看图层内部是如何根据父图层和兄弟图 ...

  7. [iOS Animation]-CALayer 显示方式

    寄宿图 图片胜过千言万语,界面抵得上千图片 ——Ben Shneiderman 我们在第一章『图层树』中介绍了CALayer类并创建了一个简单的有蓝色背景的图层.背景颜色还好啦,但是如果它仅仅是展现了 ...

  8. Core Animation 文档翻译 (第二篇)

    Core Animation 文档翻译 (第二篇) 核心动画基础要素 核心动画为我们APP内Views动画和其他可视化元素动画提供了综合性的实现体系.核心动画不是我们APP内Views的替代品,相反, ...

  9. 【转】通过制作Flappy Bird了解Native 2D中的Sprite,Animation

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...

  10. CSS 3学习——animation动画

    以下内容根据官方文档翻译以及自己的理解整理. 1.  介绍 本方案介绍动画(animations).通过动画,开发者可以将CSS属性值的变化指定为一个随时间变化的关键帧(keyframes)的集合.在 ...

随机推荐

  1. 微信小程序 errMsg: "navigateTo:fail webview count limit exceed"

    返回过多 用wx.redirectTo或者wx.reLaunch 解决

  2. LeetCoded第20题题解--有效的括号

    有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空 ...

  3. linux(5)----------防火墙的配置

    1.安装:    yum install firewalld 2.启动:    service firewalld start 3.检查状态:        service firewalld sta ...

  4. 进程CPU、内存过高问题查找

    1.定位进程 找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 查看占用内存最高的10个进程 ps aux | sort -k4nr | head -n ...

  5. Redis脑图

    转自:http://alphawang.com/blog/redis-mind-map/ 最近梳理了下 Redis 知识图谱,画了个脑图,涵盖了 Redis 数据类型.持久化机制.主从.哨兵.集群.应 ...

  6. 微信小程序学习笔记一 小程序介绍 & 前置知识

    微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...

  7. Linkerd 2.10(Step by Step)—配置重试

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  8. LeetCode入门指南 之 动态规划思想

    推荐学习labuladong大佬的动态规划系列文章:先弄明白什么是动态规划即可,不必一次看完.接着尝试自己做,没有思路了再回过头看相应的文章. 动态规划一般可以由 递归 + 备忘录 一步步转换而来,不 ...

  9. ubuntu 2018 apt 代理proxy设置

    永久设置 打开代理文件,好像默认没有,98proxy是自己新建的 sudo gedit /etc/apt/apt.conf.d/98proxy 在打开的文件中输入如下内容,其中username和pas ...

  10. 多个mysql同时运行

    一.准备 mysql下载地址 https://dev.mysql.com/downloads/mysql/ 1.下载 2.解压缩 3.创建my.ini [Client] port = 3307 [my ...