anchor-animation

<!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的更多相关文章
- iOS——Core Animation 知识摘抄(一)
本文是对http://www.cocoachina.com/ios/20150104/10814.html文章的关键段落的摘抄,有需要的看原文 CALayer和UIView的关系: CALayer类在 ...
- 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...
- Core Animation编程指南
本文是<Core Animation Programming Guide>2013-01-28更新版本的译文.本文略去了原文中关于OS X平台上Core Animation相关内容.因为原 ...
- [iOS Animation]-CALayer 性能优化
性能优化 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...
- [iOS Animation]-CALayer 显示动画
显式动画 如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆 上一章介绍了隐式动画的概念.隐式动画是在iOS平台创建动态用户界面的一种直接方式,也是UIKit动画机制的基础,不过它并不能涵盖所有的动 ...
- [iOS Animation]-CALayer 图层几何学
图层几何学 不熟悉几何学的人就不要来这里了 --柏拉图学院入口的签名 在第二章里面,我们介绍了图层背后的图片,和一些控制图层坐标和旋转的属性.在这一章中,我们将要看一看图层内部是如何根据父图层和兄弟图 ...
- [iOS Animation]-CALayer 显示方式
寄宿图 图片胜过千言万语,界面抵得上千图片 ——Ben Shneiderman 我们在第一章『图层树』中介绍了CALayer类并创建了一个简单的有蓝色背景的图层.背景颜色还好啦,但是如果它仅仅是展现了 ...
- Core Animation 文档翻译 (第二篇)
Core Animation 文档翻译 (第二篇) 核心动画基础要素 核心动画为我们APP内Views动画和其他可视化元素动画提供了综合性的实现体系.核心动画不是我们APP内Views的替代品,相反, ...
- 【转】通过制作Flappy Bird了解Native 2D中的Sprite,Animation
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...
- CSS 3学习——animation动画
以下内容根据官方文档翻译以及自己的理解整理. 1. 介绍 本方案介绍动画(animations).通过动画,开发者可以将CSS属性值的变化指定为一个随时间变化的关键帧(keyframes)的集合.在 ...
随机推荐
- NOIP 模拟 $19\; \rm v$
题解 一道概率与期望的状压题目 这种最优性的题目,我们一般都是倒着转移,因为它的选择是随机的所以我们无法判断从左还是从右更有,所以我们都搜一遍 时间一定会爆,采用记忆化搜索,一种状态的答案一定是固定的 ...
- redis缓存穿透,缓存击穿,缓存雪崩
缓存穿透 缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有.这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询).这样请求就会绕过 ...
- Docker搭建网页数据库管理-Adminer
为什么Adminer比phpMyAdmin更好? 官网介绍: 用Adminer替换phpMyAdmin,您将获得一个简洁的用户界面,对MySQL功能的更好支持,更高的性能和更高的安全性.请参阅详细比较 ...
- COM笔记-COM库函数
COM在OLE32.DLL和 OLE32.LIB定义了一些常用的函数.在使用这些函数前要先调用CoInitialize来初始化COM库.当进程不再需要使用COM库函数时要调用CoUninitializ ...
- air530GPS数据通过air202上传阿里云
写硬件博客真是太难了 GPS/北斗 导航模块 Air530开发板G1学习日记 上面这个博客详细介绍了如何测试使用Air530模块根据稳重[Air530 和Air 202 进行配合使用,实现2G GPR ...
- (二)js基础。。。freecodecamp笔记
个人需要注意的点 当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值undefined.当你对一个值为undefined的变量进行运算操作的时候,算出来的结果将会是NaN,NaN ...
- Java程序设计学习笔记(四)—— GUI
时间:2016-3-24 11:24 天道酬勤 --GUI(图形用户界面) 1.GUI Graphical User Interface(图形用户接口). 用图形的 ...
- mybaits源码分析(一)
一.源码下载 1.手动编译源码 为了方便在看源码的过程中能够方便的添加注释,可以从官网下载源码编译生成对应的Jar包,然后上传到本地maven仓库,再引用这个Jar. 首先需要编译打包parent项目 ...
- K8S_第一课作业_20200407
(1)通过cgroup来限制memory ##消耗内存脚本 /tmp/xmem.sh #!/bin/bash mkdir /tmp/memory mount -t tmpfs -o size=2048 ...
- Linux学习笔记--快捷键
桌面 ALT+空格 打开窗口菜单 ALT+F1 聚焦到桌面左侧任务导航栏,可按上下键导航 ALT+F2 运行命令 ALT+F4 关闭窗口 ALT+TAB 切换程序窗口 PRINT 桌面截图 S ...