简体   繁体   English

如何使动画仅在可见时起作用

[英]how to make animation working only when it is in view

当我的页面加载时,动画元素不在第一视图中。当我滚动到该特定元素时,该动画已经停止了。我想要一个仅在该元素在视图中时才运行的动画...但没有任何jquery插件。任何简单的JavaScript函数都能达到这种效果吗?谢谢。

Here is my code < https://jsfiddle.net/6pxwgkro/1/ >

You might be able to get away without using jQuery but you will need javascript. 您可能无需使用jQuery就可以摆脱困境,但需要使用javascript。 The best thing that you can do is create an element with a space in it (span, div anything) and use the following code to check if it is in viewport 最好的办法是创建一个在其中带有空格的元素(span,div等),并使用以下代码检查其是否在视口中

function amIVisible(elem) {
var top = elem.offsetTop;
var left = elem.offsetLeft;
var width = elem.offsetWidth;
var height = elem.offsetHeight;

while(elem.offsetParent) {
elem = elem.offsetParent;
top += elem.offsetTop;
left += elem.offsetLeft;
}

return (
top < (window.pageYOffset + window.innerHeight) &&
left < (window.pageXOffset + window.innerWidth) &&
(top + height) > window.pageYOffset &&
(left + width) > window.pageXOffset
);
}

and if the above function returns true then create the div which needs to be aninamted in js just below the element you checked with a class which does the animation. 如果上面的函数返回true,则创建一个div,该div需要在js中进行动画处理,该div恰好位于您所检查的带有动画类的元素下方。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM