2017-06-05 5 views

答えて

0

数日前、私はあなたのパスに問題があることを言った:私は解決策ここ

var path = anime.path('path'); 

anime({ 
    targets: 'div', 
    translateX: path, 
    translateY: path, 
    rotate: path, 
    duration: 6000, 
    loop: true, 
    easing: 'linear' 
}); 

を見つけることができていcodepenだいないので、これを達成するためにどのように何かアドバイスをいただければ幸いです。 あなたのパスを再構築する必要が...

<!doctype html> 
 
    <html lang="en"> 
 
    <head> 
 
    <meta charset="UTF-8"> 
 
    <title>Document</title> 
 
    </head> 
 
    <body> 
 
    <button onclick="dashAni(myPath, 50, 3500)">start</button> 
 
    <svg id="mySVG" width="200" height="200" viewBox="0 0 500 500"> 
 
     <path id="myPath" d="M 50,250 c 0 -100 150 -100 200 0 
 
             c 50 100 200 100 200 0 
 
             c -0 -100 -150 -100 -200 0 
 
             c -50 100 -200 100 -200 0 
 
             z" 
 
     stroke="#eee" 
 
     stroke-width="5" fill="none" /> 
 
    </svg> 
 
    <script> 
 
     var dashAni = function(path, length, duration){ 
 
     var dashPath = path.cloneNode(true); 
 
     mySVG.appendChild(dashPath); 
 
     var pathLen=path.getTotalLength(); 
 
     var aktPos=0 
 
     var sumSteps = duration/(1000/60) // 60 pics per second 
 
     var step=0; 
 
     var pathAnim; 
 
     dashPath.setAttribute('stroke-dasharray', length + ' ' + (pathLen - length)); 
 
     dashPath.setAttribute('stroke', "red"); 
 
     dashPath.setAttribute('stroke-dashoffset', aktPos); 
 

 
     var anim=function(){ 
 
      aktPos = pathLen/sumSteps*step*-1; 
 
      //aktLen = easeInOutQuad(step/sumSteps)*len; 
 
      dashPath.setAttribute('stroke-dasharray', length + ' ' + pathLen); 
 
      dashPath.setAttribute('stroke-dashoffset', aktPos); 
 

 
      if (step <= (sumSteps)){ 
 
      step++; 
 
      pathAnim = setTimeout(anim, 1000/60) //1000/60 pics/second 
 
      } else { 
 
       mySVG.removeChild(dashPath); 
 
       clearTimeout(pathAnim); 
 
      } 
 
     } 
 
     anim(); 
 
     } 
 
    </script> 
 
    </body> 
 
    </html>

+0

私は、単一のパスにそれを作ったが、それはまだ働いていません。あなたのパスを私のコードに追加することはできますが、行はまだパスに正しく従いません。私の道が間違っていることをあなたが精緻にすることはできますか。ここにあなたのパスが追加されています:https://codepen.io/anon/pen/VWYKwB – user3615851

+0

残念ながら、私はめったにライブラリを扱っていないので、私はあなたには言いません。そのようなライブラリを扱う時間は私にとっては大きすぎるので、いつも自分で必要とするルーチンを書いています。 –

関連する問題