CSS3 transition event Listener with jQuery

前端 未结 4 1360
无人及你
无人及你 2020-12-09 18:48

I am implementing a CSS3 transition effect on a article element but the event listener transitionend works only in pure JavaScript, not with jQuery.

See exa

相关标签:
4条回答
  • 2020-12-09 19:25

    in jQuery you should use bind() or on() method:

    $(this).parent().bind( 'transitionend', function() {alert("1"); });
    
    0 讨论(0)
  • 2020-12-09 19:26

    this.parentNode returns a javascript object. It has a property .addEventListener $(this).parent()returns a jQuery object. It does not have a property .addEventListener

    Try this instead,

    $(this).parent().on('webkitTransitionEnd oTransitionEnd transitionend msTransitionEnd', function() {
        alert("1");
    })
    
    0 讨论(0)
  • 2020-12-09 19:26

    If the first one really works (I doubt it because it should require a vendor prefix), then this should work too:

    $(this).parent().on('transitionend', function() {
        alert("1");
    });
    
    0 讨论(0)
  • 2020-12-09 19:39

    Also take note that if you are running multiple transitions on an element (eg. opacity and width) that you'll get multiple transitionEnd callbacks.

    If you're using jQuery to bind an event to a div's transition end, you might want to consider using one() function.

    $(this).parent().one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function() {
        // your code when the transition has finished
    });
    

    This means that the code will only fire the first time. So, if you had four different transitions happening on the same element, your callback will only fire once.

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