I want the jQuery slideToggle effect but want to use CSS3 transitions in order to invoke the GPU on an iOS device so the transition is smoother.
You can achieve this by transitioning height, padding's and border-width. Here is an example:
height
padding
border-width
$('.run-css').click(function() { $('.cont').toggleClass('toggled'); });
.cont { width: 100px; height: 100px; border: 1px #CCC solid; background-color: #EEE; padding: 5px; -webkit-transition: height .3s linear, padding-top .3s linear, padding-bottom .3s linear, border-top-width .3s linear, border-top-width .3s linear; transition: height .3s linear, padding-top .3s linear, padding-bottom .3s linear, border-top-width .3s linear, border-top-width .3s linear; } .toggled { overflow: hidden; padding-top: 0; padding-bottom: 0; height: 0; border-width: 0 1px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> <button class="run-css">CSS slideToggle</button> <div class="cont">Toggle this div</div>
1.4m articles
1.4m replys
5 comments
57.0k users