How to Trigger css animation both on scrolling down and up

后端 未结 1 1975
Happy的楠姐
Happy的楠姐 2020-12-29 13:33

I\'m using several CSS animations on a project. My problem is these animations get triggered only once, when scrolling down. I need them to be triggered every time the user

1条回答
  •  北海茫月
    2020-12-29 14:19

    Something like this should work.

    Working Example

    $(window).scroll(function () {
        $('.animation-test').each(function () {
            var imagePos = $(this).offset().top;
            var imageHeight = $(this).height();
            var topOfWindow = $(window).scrollTop();
    
            if (imagePos < topOfWindow + imageHeight && imagePos + imageHeight > topOfWindow) {
                $(this).addClass("slideRight");
            } else {
                $(this).removeClass("slideRight");
            }
        });
    });
    

    Basically its just using an if statement to find whether the element is within the view port and adding and removing the class. You can toggle the visibility of the element by using:

    .element-to-hide{
        visibility:hidden; 
    } 
    .slideRight {
        visibility: visible;
        animation-name: slideRight;
        -webkit-animation-name: slideRight;
        animation-duration: 1.5s;
        -webkit-animation-duration: 1.5s;
        animation-timing-function: ease-in-out;
        -webkit-animation-timing-function: ease-in-out; 
    }
    

    0 讨论(0)
提交回复
热议问题