3
오늘 내 목록 질문이 될 것입니다. jQuery에서 방사형 그래디언트를 애니메이트 할 수 있습니까 (예 : .animate 사용)?jQuery로 그라디언트 애니메이션하기
background: -webkit-gradient(
radial, 50% 50% ,0, 50% 50%, 70, from(rgb(25,25,25)), to(rgb(50,50,50))
);
오늘 내 목록 질문이 될 것입니다. jQuery에서 방사형 그래디언트를 애니메이트 할 수 있습니까 (예 : .animate 사용)?jQuery로 그라디언트 애니메이션하기
background: -webkit-gradient(
radial, 50% 50% ,0, 50% 50%, 70, from(rgb(25,25,25)), to(rgb(50,50,50))
);
당신은 jQuery를 기본적으로이 작업을 수행 할 수 없습니다, 당신은 심지어 해당 플러그인없이 평면 색상을 애니메이션 할 수 없다.
그라디언트를 애니메이션화하는 것은 브라우저 간의 구문 차이로 인해 어려움이 있습니다. 나는 당신에게 유용 할 수있는 아주 특정한 경우를위한 플러그인을 썼다. 선형 그래디언트를위한 것이지만 방사형으로 조정할 수 있습니다.
jQuery.fx.step.gradient = function(fx) {
if (fx.state == 0) { //On the start iteration, convert the colors to arrays for calculation.
fx.start = fx.elem.style.background.match(/\d+/g); //Parse original state for numbers. Tougher because radial gradients have more of them
fx.start[0] = parseInt(fx.start[0]);
fx.start[1] = parseInt(fx.start[1]);
fx.start[2] = parseInt(fx.start[2]);
fx.end = fx.end.match(/\d+/g);
fx.end[0] = parseInt(fx.end[0]);
fx.end[1] = parseInt(fx.end[1]);
fx.end[2] = parseInt(fx.end[2]);
}
fx.elem.style.background = "-webkit-linear-gradient(rgb(" + [
Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
].join(",") + ")," + "rgb(0,0,0))";
}
$(this).animate({"gradient": "rgb(0, 255, 0)"});
당신은 아마 두 가지 기능과 같이 호출 할 것이다 외부 (
jQuery.fx.step.outerColor
)의 내부 색상 (
jQuery.fx.step.innerColor
)와 하나 하나 만들
:
$(this).animate({"innerColor": "rgb(25,25,25)",
"outerColor": "rgb(50,50,50)"});
미안 , missclick –
중복 되었습니까? http://stackoverflow.com/questions/5522513/animate-css3-gradient-positions-using-jquery –
@ SérgioMichels 나는 그 하나를 보지 못했지만 그 남자는 정답을 얻지 못했습니다 .. 그래서? –