Javascript html、css和js中的动画

Javascript html、css和js中的动画,javascript,html,jquery,css,animation,Javascript,Html,Jquery,Css,Animation,我包括了一个SVG on scroll动画,如下所示: document.addEventListener(“DOMContentLoaded”,函数(事件){ //获取对 var path=document.querySelector(“#星形路径”); //获取路径长度…~577px在本例中 var pathLength=path.getTotalLength(); //划很长的破折号(路径本身的长度) path.style.strokeDasharray=路径长度+“”+路径长度; //

我包括了一个SVG on scroll动画,如下所示:

document.addEventListener(“DOMContentLoaded”,函数(事件){
//获取对
var path=document.querySelector(“#星形路径”);
//获取路径长度…~577px在本例中
var pathLength=path.getTotalLength();
//划很长的破折号(路径本身的长度)
path.style.strokeDasharray=路径长度+“”+路径长度;
//偏移虚线,使其显示为完全隐藏
path.style.strokeDashoffset=路径长度;
//杰克·阿奇博尔德是这么说的
// https://jakearchibald.com/2013/animated-line-drawing-svg/
getBoundingClientRect();
//当页面滚动时。。。
window.addEventListener(“滚动”,函数(e){
//降价多少?
// https://stackoverflow.com/questions/2387136/cross-browser-method-to-determine-vertical-scroll-percentage-in-javascript/2387222#2387222
//不得不在这里尝试三到四种不同的上网方式。有点像跨浏览器的噩梦。
var scrollPercentage=(document.documentElement.scrollTop+document.body.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight);
//偏移虚线的长度
var drawLength=路径长度*滚动百分比;
//倒抽
path.style.strokeDashoffset=路径长度-绘图长度;
//完成后,移除虚线阵列,否则形状不太锐利
//模糊数学的解释
如果(滚动百分比>=0.99){
path.style.strokeDasharray=“无”;
path.style.fill=“#47AF9A”;
}否则{
path.style.fill=“无”;
path.style.strokeDasharray=路径长度+“”+路径长度;
}
});
});
正文{
/*随意改变高度*/
高度:5000px;
背景:线性梯度(
归根结底,
橙色
深蓝
);
}
#星型svg{
位置:固定;
最高:50%;
左:50%;
宽度:150px;
高度:150像素;
利润率:-75px 0-75px;
}

滚动绘图

在滚动侦听器中,您应该检查元素是否滚动到视图中,如果没有,请等待运行动画,直到元素在页面上显示

您可以使用此函数确定图元是否在视图中:

function isScrolledIntoView(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
函数是crolledintoview(elem)
{
var docViewTop=$(window.scrollTop();
var docViewBottom=docViewTop+$(window).height();
var elemTop=$(elem).offset().top;
var elemBottom=elemTop+$(elem).height();
返回((elemBottom=docViewTop));
}
(来自)