经常会遇到的以下情形:
导航向下滚就隐藏,向上滚动就显示
实现滚动动画效果:向下滚动 左右两边的内容向中间移动,而向上滚动 两个内容又退回到左右两边;又或者向下滚动canvas放大,反之缩小
这些动画原理当知少不了scrollTop()函数;
scrollTop() 定义和用法
scrollTop() 方法设置或返回被选元素的【垂直滚动条位置】。
Note:
当滚动条位置位于最顶部时,位置是0;
当用于返回位置时:
该方法返回 第一个匹配元素的滚动条的垂直位置。语法: ( s e l e c t o r ) . s c r o l l T o p ( ) 当 用 于 设 置 位 置 时 : 该 方 法 设 置 所 有 匹 配 元 素 的 滚 动 条 的 垂 直 位 置 。 语 法 : (selector).scrollTop() 当用于设置位置时: 该方法设置 所有匹配元素的滚动条的垂直位置。语法: (selector).scrollTop()当用于设置位置时:该方法设置所有匹配元素的滚动条的垂直位置。语法:(selector).scrollTop(position) 参数position : 规定以像素为单位的垂直滚动条位置。
如何判断是up还是down
var a;
function scroll( fn ) {var beforeScrollTop = document.body.scrollTop,fn = fn || function() {};window.addEventListener("scroll", function() {var afterScrollTop = document.body.scrollTop,delta = afterScrollTop - beforeScrollTop;if( delta === 0 ) return false;fn( delta > 0 ? "down" : "up" );beforeScrollTop = afterScrollTop;}, false);}//第一种写法scroll(function(direction) {// console.log(direction);a = direction;});//第二种写法执行完事件后的回调函数function fn(direction) {// console.log(direction);a = direction;};window.onscroll=function(){console.log(a);}
来解决以上情形
通过判断向上或者向下,后,就是原理问题;
案例~~~~滚动内容往中间或两边移动效果
原理:先给元素设置一个left值让其隐藏,当滚动条到一定位置,改变其left值让其出现。改变幅度与滚动幅度正相关。透明度那个也是同理
复制代码