webkit translateX animation is rolling back to initial position

后端 未结 4 646
轻奢々
轻奢々 2021-02-05 13:08

I am trying to do a images gallery for mobile webkit,

The only way it is actually fast enough is using the hardware accelerated translateX .

My problem is that

相关标签:
4条回答
  • 2021-02-05 13:43

    Do not use webkit animation for this as it comes back to the default values once played. Instead define

    .slideGalleft{
        -webkit-transition: -webkit-transform 1s linear;
        -webkit-transform: translateX(0%);
    }
    

    and using Javascript, either set -webkit-transform: translateX(100%); or add a CSS class to your element which set the final transform value and webkit will animate it properly

    0 讨论(0)
  • 2021-02-05 13:43

    Guillaume's answer is great. However, if you are looking for hardware acceleration, you must let the webkit engine know you want 3D rendering (what makes hardware acceleration active).

    According to http://www.html5rocks.com/tutorials/speed/html5/#toc-hardware-accell, this is done by adding translateZ(0) to your rule, like so:

    .slideGalleft{
        -webkit-transition: -webkit-transform 1s linear;
        -webkit-transform: translateX(0%) translateZ(0);
    }
    

    Follow Guillaume's advice beyond that.

    0 讨论(0)
  • 2021-02-05 13:46

    Use:

    -webkit-animation-fill-mode: none/backwards/forwards/both;
    

    This allows you to define at what end of your animation the element remains when the animation is finished.

    0 讨论(0)
  • 2021-02-05 13:56

    I was able to make it work by adding a "display:none" style on the finish of the animation. Use the following CSS:

    .paused {
        -webkit-animation-play-state: paused;
    }
    
    .hiddendiv {
        display:none;
    }
    

    Then in your jQuery code:

    $('div.sideimage').click(
        function () {
            $(this).removeClass("paused").delay(2000).queue(
                function(next) {     
                    $(this).addClass("hiddendiv");     
                    next();
                }
            ); 
        }
    );
    

    Should work!

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