JavaScript/jQuery에서 만들고 추가 한 여러 경로 요소에 애니메이션을 적용하려고합니다. 그런 다음 타임 라인을 사용하여 이러한 요소를 하나씩 애니메이션화합니다 (다른 값을 사용하여 비틀어 사용할 수 없음). 결국 전체 일정표를 재생하는 대신 일정 비율을 재생하려고합니다.GreenSock TimelineMax가 Safari 및 Firefox에서 작동하지 않는 경로 요소에 있음
이것은 Chrome에서 정상적으로 작동하지만 Safari 및 Firefox에서는 작동하지 않으며 그 이유를 파악할 수 없습니다. 여기
는 CodePen입니다 : http://codepen.io/elisabeth_hamel/pen/kXqOmw편집 : CodePen가 업데이트 지금 노력하고 있습니다.
HTML 어떤 도움을 주시면 감사하겠습니다
svg{
width: 100%;
position: absolute;
top: 0;
bottom: 0;
left: 60px;
margin: auto;
overflow: visible;
z-index: 1;
.up{
-webkit-transform: translate3d(0, 40px, 0);
transform: translate3d(0, 40px, 0);
}
.down{
-webkit-transform: translate3d(0, 40px, 0);
transform: translate3d(0, -40px, 0);
}
}
JS
$(function(){
var trianglesTimeline = new TimelineMax({paused: true, smoothChildTiming: true});
function setAnimations(){
var nbTriangles, i = 0, svg = '', random = 1, thisPath;
nbTriangles = ($(window).width() - 60)/9 | 0;
for(i; i<nbTriangles; i++){
random = (Math.random()*(2.5-0.5) + 0.5).toFixed(1);
if(i%2 === 0){
svg += "<path fill='#000' d='M0 0H2 L1 1Z' class='down' data-op='"+random+"' data-x='"+i+"' style='opacity:0'/>";
}else{
svg += "<path fill='#000' d='M0 1H2 L1 0Z' class='up' data-op='"+random+"' data-x='"+i+"' style='opacity:0'/>";
}
}
$('svg').html(svg);
i = 0;
for(i; i<nbTriangles; i++){
thisPath = $('path').eq(i);
TweenMax.set(thisPath, {x: thisPath.data('x')}, 0);
trianglesTimeline.to(thisPath, 0.3, {opacity: thisPath.data('op'), y: '0px', delay: 0.04*i}, 0);
}
trianglesTimeline.tweenTo(trianglesTimeline.duration() * 0.1);
}
setAnimations();
});
<svg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 2 1' preserveAspectRatio='xMinYMid meet'></svg>
CSS :
그리고 여기에 코드입니다!