javascript 动画滚动到纯JS中的目标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 动画滚动到纯JS中的目标相关的知识,希望对你有一定的参考价值。
var links = document.getElementsByClassName('scroll-link');
for (var i = 0; i < links.length; i++) {
links[i].onclick = scroll;
}
function scroll(e) {
e.preventDefault();
var id = this.getAttribute('href').replace('#', '');
var target = document.getElementById(id).getBoundingClientRect().top;
animateScroll(target);
}
function animateScroll(targetHeight) {
targetHeight = document.body.scrollHeight - window.innerHeight > targetHeight + scrollY ?
targetHeight : document.body.scrollHeight - window.innerHeight;
var initialPosition = window.scrollY;
var SCROLL_DURATION = 30;
var step_x = Math.PI / SCROLL_DURATION;
var step_count = 0;
requestAnimationFrame(step);
function step() {
if (step_count < SCROLL_DURATION) {
requestAnimationFrame(step);
step_count++;
window.scrollTo(0, initialPosition + targetHeight * 0.25 * Math.pow((1 - Math.cos(step_x * step_count)), 2));
}
}
}
以上是关于javascript 动画滚动到纯JS中的目标的主要内容,如果未能解决你的问题,请参考以下文章
javascript JS:滚动以触发动画
javascript js + html + css - 块的动画vith滚动
ScrollReveal-元素随页面滚动产生动画的js插件
跨浏览器 JavaScript(不是 jQuery...)滚动到顶部动画
跨浏览器 JavaScript(不是 jQuery...)滚动到顶部动画
JavaScript实现页面滚动到div区域div以动画方式出现