javascript - 如何使动画仅在可见时工作

标签 javascript html css

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

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

最佳答案

您可能不使用 jQuery 就可以摆脱困境,但您将需要 javascript。您可以做的最好的事情是创建一个带有空格的元素(span、div 任何东西)并使用以下代码检查它是否在视口(viewport)中

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
);
}

如果上述函数返回 true,则创建需要在 js 中进行动画处理的 div,就在您使用执行动画的类检查的元素下方。

关于javascript - 如何使动画仅在可见时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39263330/

相关文章:

javascript - 如何将选择选项附加到 JQuery 函数

html - 如何并排正确设置 CSS 悬停叠加图像

html - CSS叠加后的内容在叠加层下方

jquery - Bootstrap 导航栏响应

javascript - slideToggle() 导致第一个 li a 在点击时跳转

javascript - 使用 javascript 在用户计算机上启动本地文件?

javascript - 如何在 JavaScript 中导入 json 文件?

javascript - Angular 2 操纵 DOM - 将组件从一个地方移动到另一个地方同时保留功能

javascript - localStorage 无法运行 "save"游戏

javascript - 显示另一个元素(类)时隐藏 .innerHTML :none;