【发布时间】:2023-03-10 15:03:01
【问题描述】:
我有this jfiddle 在哪里:
- CSS 动画在
div出现在视口上时开始。 - 我有一个 未知 号码
div,带有一个图标和 2 个文本行。
我需要什么:
每个图标相对于下一个图标都有延迟。在我的 jsfiddle 中,所有图标都是同时动画的。
实际程序可能有 1、2 或 300 个
divs和一个图标,解决方案必须适用于任何数字,而不仅仅是我的 jsfiddle 示例中的 3 项。我在
divs上有引导程序,并且使用滚动控件,动画只有在div出现在视口上时才会开始,而在笔记本电脑上我会连续显示 6 个图标,仅在智能手机上1.
var $animation_elements = $('.animation-element');
var $window = $(window);
function check_if_in_view() {
var window_height = $window.height();
var window_top_position = $window.scrollTop();
var window_bottom_position = (window_top_position + window_height + 15);
$.each($animation_elements, function() {
var $element = $(this);
var element_height = $element.outerHeight();
var element_top_position = $element.offset().top;
var element_bottom_position = (element_top_position + element_height);
//check to see if this current container is within viewport
if ((element_bottom_position >= window_top_position) &&
(element_top_position <= window_bottom_position)) {
$element.addClass('in-view');
else {
$element.removeClass('in-view');
}
});
$window.on('scroll resize', check_if_in_view);
$window.trigger('scroll');
【问题讨论】:
-
您是否希望图标按顺序出现,例如,第一个结束时,第二个开始,第二个结束时,第三个开始等等?
-
嗨@Roizpi!首先感谢您的时间!不一定按顺序 - 我在每个图标之间使用了 3 秒的延迟。但是 - 我在 div 上有引导程序,并且使用 scrool 控件,动画只有在 div 出现在屏幕上时才会开始 - 但在笔记本上我连续获得 6 个图标,而在手机上我连续只有 1 个图标。然后,动画以不同的图标结束,并以滚动重新开始。(我不知道你是否理解,如果这个细节可能有问题..)
-
您能上传任何显示 jfiddle 的手机图片吗?这将有助于诊断。 @DANIEL 考虑这个solution 来解决上述延迟问题。
-
This 一个人解决了一个小问题
-
嗨@Roizpi!很多!我昨天阅读了您的消息并正在测试解决方案。我遇到了一个小问题,正在创建一个新的 jfiddle 来向您展示,但现在我看到了您的新消息,并将测试新的修复程序。我很快就会回来tksssssss!
标签: javascript jquery html css animation