css - jQuery - find out :hover-styles -
i have div grows on hover. but: applied css-transition 200ms.
now, if use jquery width()-function on hover() wrong value because of animation. need hover-width in endstate at exact hover-time, not @ end (that's why settimeout() doesn't solve problem).
is possible :hover-style is?
html
<div id="parent">     <div id="grows"></div> </div><br><br><br><br> <span id="width"></span> css
div#parent {     width: 100px;     height: 100px; }  div#grows {     width: 100%;     height: 100%;      background-color: black;      -webkit-transition: 0.2s ease;     -moz-transition: 0.2s ease;     -ms-transition: 0.2s ease;     -o-transition: 0.2s ease;     transition: 0.2s ease; }  div#grows:hover {     width: 150%;     height: 150%; } and js:
$(document).ready(function() {     $('div#grows').hover(function() {         var width = $(this).css('width')); // 100px should 150px!     }); }); here jsfiddle: http://jsfiddle.net/v15h652h/
edit: maybe it's not clear enough: need width defined in :hover-style at exact hover-time, not @ end, it's late.
browsers have events allowing handle states of css3 transition (or animation). can use transitionend 1 wait transition finished execute callback:
$(document).ready(function() {    $('div#grows').hover(function() {        $(this).on('webkittransitionend otransitionend otransitionend mstransitionend transitionend', function() {        $(this).off('webkittransitionend otransitionend otransitionend mstransitionend transitionend');        $('#width').html($('#width').html() + ' ' + $(this).css('width'));      });    });  });div#parent {    width: 100px;    height: 100px;  }  div#grows {    width: 100%;    height: 100%;    background-color: black;    -webkit-transition: 0.2s ease;    -moz-transition: 0.2s ease;    -ms-transition: 0.2s ease;    -o-transition: 0.2s ease;    transition: 0.2s ease;  }  div#grows:hover {    width: 150%;    height: 150%;  }<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>  <div id="parent">    <div id="grows"></div>  </div>  <br>  <br>  <br>  <br>  <span id="width"></span>ps: personnally prefer using simple .on() event handler .off() remove rather danko's .one() because .one() execute once each event type triggers (particularly, chrome, executed twice)
Comments
Post a Comment