jquery - Resetting the .style of an element / reverting to 'initial' without .style overriding -
i have div (.projecttitle
) inside of div (.projectcontainer
). when screen greater 1000px wide, .projecttitle
initialized opacity:0;
. when screen less 1000px wide, initialized opacity:1;
. see:
@media (min-width: 1000px) { .projecttitle { opacity:0; } } @media (max-width: 1000px) { .projecttitle { opacity:1; } }
now, if .projectcontainer
hovered on while screen wider 1000px, opacity of .projecttitle
should animate 1, , 0 when unhovered. however, nothing should happen if hovered on when screen less 1000px; should alway remain @ 1 in case.
i have variable (windowstate
) changes depending on width of screen:
less 1000px, windowstate = 3
greater 1000px, windowstate = 2
i have jquery event looks handle hovering, it's job properly:
$(".projectcontainerr").hover( function(){ if (windowstate != 3){ $('.projecttitle', this).animate({ opacity:1},100); } }, function(){ if(windowstate != 3){ $('.projecttitle', this).animate({ opacity:"initial"},100); } } );
the problem
when opacity reset it's value of initial
(aka, value defined in media queries) after unhovering, value overridden fact set 1, when hovered onto. "1" value hovering placed element's style, overriding inherited value css 'initial' has returned to.
how prevent value overriding / reset / animate without using element's style?
why don't using css3 transition instead of jquery
@media (min-width: 1000px) { .projectcontainer:hover .projecttitle{ opacity: 1; transition: opacity 1s ease-in-out; -moz-transition: opacity 1s ease-in-out; -webkit-transition: opacity 1s ease-in-out; } .projecttitle { opacity:0; } } @media (max-width: 1000px) { .projecttitle { opacity:1; } }
here demo
Comments
Post a Comment