jquery - Disable CSS transitions on page load only -
i have div styled have smooth transitions on background-color when hovered. div displayed in many pages (including homepage) in homepage has different background-color.
div { border:1px solid; background-color:#fff; display:inline-block; width:100%; height:100px; -webkit-transition: 0.5s; -moz-transition: 0.5s; -o-transition: 0.5s; transition: 0.5s; } div.homepage { background-color:#777; } div:hover, div.homepage:hover { background-color:#f00; }
since div included php snippet on each page, idea (to keep code clean) output generic div php , add "homepage" class on homepage only, via jquery.
$('div').addclass("homepage");
unfortunately, causes undesired transition on page load (see fiddle, sake of clarity click "run" after loading). how can disable css transitions on page load only, without affecting normal behaviour (when div hovered)?
this worked me: http://css-tricks.com/transitions-only-after-page-load/
essentially, add class body tag:
<body class="preload">
which disables transitions:
.preload * { -webkit-transition: none !important; -moz-transition: none !important; -ms-transition: none !important; -o-transition: none !important; }
then once page has loaded remove class:
$(window).load(function() { $("body").removeclass("preload"); });
simples! :d
Comments
Post a Comment