2014-09-08 4 views
0

필자는 필자의 필자가 작성한 필자의 코드 조각을 가지고 있지만, 필자는 그 사실을 알지 못해서 궁금해하고 있습니다.jQuery 애니메이션으로 DIV 배경을 바꾼다

DIV에 배경이 설정되어 있지만 마우스 오버시 마우스 오버시 새 색상으로 애니메이션을 적용한 다음 다시 가져 오려면 불투명하지만 대신 색상으로 설정해야합니다.

<div class="blue">this is the content area</div> 

<style> 
.blue { background: #006699; } 
</style> 

<script> 
$(document).ready(function(){ 
    $(".blue").hover(
    function() { 
     $(this).animate({ backgroundColor:'#003d7b' }, 1000); 
    }, 
    function() { 
     $(this).animate({ backgroundColor:'#006699' }, 1000); 
    }); 
}); 
</script> 

감사

+0

에서 [jQuery를 UI 라이브러리]의 관련 부분을 참조하십시오를 (http://jqueryui.com/) 때 색상 애니메이션. [here] (http://jsfiddle.net/z986moeu/)를 참조하십시오. – George

+0

임 Foundation 5 프레임 워크를 사용하고 있습니다. 실제로 실제로 UI가로드되는지 확인해 보겠습니다. –

답변

0

완화가 JQuery와

검사에이 게시물에 포함되지 않습니다 당신이 기본적으로 배경 색상을 애니메이션 캔트 : jQuery animate backgroundColor

당신이 전체 jQuery를 포함 해달라고을 -ui이지만 bacgroundcolor easings 만 가능

(function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(!g.colorInit){g.start=c(g.elem,e);g.end=b(g.end);g.colorInit=true}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.css(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]}})(jQuery); 
+0

아, 이제 전체 UI를로드해야합니다. 내가 너에게 돌아 오게 해줘. –

+0

옙 잘, 내 CSS에서 잘 작동! 중요한 설정되므로 overrideed하지만 특정 사이트에 애니메이션으로 사이트의 다른 영역에 대한 필요합니다. JS backgroundColor를 중요하게 만들어서 인라인 스타일을 생성 할 때 인라인으로 설정할 수 있습니까? –

+0

한 번 중요성이 설정되면 더 이상 무시할 수 없다는 것을 의미하며 중요성을 사용하지 마십시오. /, 더 적합한 선택자를 사용하여 해결 방법이 있음을 확인하십시오. –

-2

변경

$(this).animate({ backgroundColor:'#003d7b' }, 1000); 

$(this).animate({ background-color:'#003d7b' }, 1000); 

당신은 잊었 -

+0

구문이 올바르지 않습니다. . – George

+0

안녕하세요, Pieter, FYI, 구문 ('backgroundColor')이 좋습니다. JavaScript는 낙타의 경우에 하이픈을 쓰면 CSS 속성을 사용할 수 있습니다. 또한'-'는 객체 속성의 이름을 지정할 때 잘못된 문자입니다. '{ 'background-color': '#fff'}'와 같이 따옴표로 묶어야합니다. 마지막으로, jQuery는 색상을 애니메이트 할 수 없습니다. 연장없이 최소한. –

관련 문제