연결된 svg 애니메이션이 작동하지 않습니다. 인라인으로 잘 작동

GtwoK

여기에 표시된 방법을 통해 애니메이션을 적용하고있는 여러 경로로 구성된 svg 파일이 있습니다 . 이것은 애니메이션 경로의 표준 방법입니다. 대시 오프셋이있는 것과 그렇지 않은 것입니다.

코드를 테스트 한 결과 인라인으로 작성된 svg 파일에서 제대로 작동합니다. 즉, svg 경로에 대한 코드가 스크립트와 동일한 문서에 직접 작성됩니다. 여기 에서 실제 동작을 볼 수 있습니다 . 사용되는 스크립트는 다음과 같습니다.

$(document).ready(function(){

    var path = document.getElementsByTagName('path');
    var length;
    var anim = document.getElementsByTagName('animate');

    for(i = 0; i < path.length; i++){
        length = path[i].getTotalLength().toString();
        path[i].setAttribute('stroke-dasharray',length+','+length);
        anim[i].setAttribute('values','-'+length+';0');
    }

});

그러나에서 svg 파일로 작동하도록 만들려고 할 때 <object>운이 좋지는 않습니다. 파일을 올바르게 배치했는데 잘 표시됩니다. 수정 된 스크립트를 실행하면 정상적으로 실행되고 길이 값과 길이 값을 할당하고 각 요소 <path><animate>요소에 할당 해야합니다 (svg 요소를 검사하여 확인할 수 있습니다. stroke-dasharray속성은 각 경로의 길이와 동일한 값을 가져야합니다.) ).

문제는 값이 애니메이션을 트리거해야하는 값으로 적절하게 변경 되었음에도 불구하고 애니메이션이 적용되지 않는다는 것입니다. 코드가 현재 문서가 아닌 svg 문서를 살펴 보는 것을 제외하고는 코드가 인라인 문서와 똑같이 작동하기 때문에 이것이 왜 그런지 잘 모르겠습니다. 여기에 스크립트의 수정 된 버전이 있습니다. 인라인이 아닌로드 된 svg) :

$(document).ready(function(){
    var a = document.getElementById("logoSVG");
    //it's important to add an load event listener to the object, as it will load the svg doc asynchronously
    a.addEventListener("load",function(){
        var svgDoc = a.contentDocument; //get the inner DOM of .svg
        var path = svgDoc.getElementsByClassName('line');
        var length;
        var anim = svgDoc.getElementsByTagName('animate');

        for(i = 0; i < path.length; i++){
            length = path[i].getTotalLength().toString();
            path[i].setAttribute('stroke-dasharray',length+','+length);
            anim[i].setAttribute('values','-'+length+';0');
        }
    },false);
});

위의 코드가 실제로 작동하는 것을보고 싶다면 (인라인이 아닌로드되는 위치) 여기에 있습니다 .

스티븐 토마스

문제는 상위 문서 ( stroke-dasharraystroke-dashoffset규칙)에 정의 된 스타일 이 포함 된 개체에 적용되지 않는다는 것입니다. CSS는 객체로 캐스케이드되지 않습니다.

JavaScript를 사용하여 객체에 직접 스타일 규칙을 추가하거나 상위 문서 대신 외부 SVG 파일에 CSS 규칙을 포함 할 수 있습니다.

이 질문 에는 자세한 내용이 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

IE에서 작동하지 않는 SVG 라인 애니메이션

분류에서Dev

일부 브라우저에서 더 이상 작동하지 않는 스크립팅 된 SVG 애니메이션

분류에서Dev

SVG SMIL 경로 애니메이션이 Safari에서 작동하지 않습니다.

분류에서Dev

SVG 모양의 획 애니메이션이 제대로 작동하지 않습니다.

분류에서Dev

fadeIn, fadeOut 애니메이션이 잘 작동하지 않습니다

분류에서Dev

호버시 SVG 원 애니메이션이 작동하지 않습니다.

분류에서Dev

jQuery 애니메이션은 FF에서는 잘 작동하지만 다른 모든 브라우저에서는 제대로 작동하지 않습니다.

분류에서Dev

잘못된 노드 버전으로 인해 NPM이 작동하지 않습니다.

분류에서Dev

Firefox에서 SVG 애니메이션이 작동하지 않음

분류에서Dev

Vanilla js 페이드 인 애니메이션이 작동하지 않습니다.

분류에서Dev

AVSynchronizedLayer 애니메이션은 로컬 파일에서 잘 작동하지만 스트리밍 중에는 작동하지 않습니다.

분류에서Dev

정의 된 경로의 d 속성 애니메이션이 firefox에서 작동하지 않습니다.

분류에서Dev

잘못된 web.config 설정으로 인해 기본 문서가 작동하지 않습니다.

분류에서Dev

jQuery 두 개의 연속 애니메이션이 작동하지 않습니다.

분류에서Dev

jquery 애니메이션 슬라이드가 작동하지 않습니다.

분류에서Dev

CSS 애니메이션이 예상대로 작동하지 않습니다.

분류에서Dev

jQuery 애니메이션 예제 로직이 작동하지 않습니다.

분류에서Dev

jquery 애니메이션이 예상대로 작동하지 않습니다.

분류에서Dev

CSS 애니메이션이 예상대로 작동하지 않습니다.

분류에서Dev

Jquery navbar 애니메이션이 제대로 작동하지 않습니다.

분류에서Dev

CSS 애니메이션이 예상대로 작동하지 않습니다.

분류에서Dev

바인딩이 예상대로 작동하지 않습니다. 잘못된 구성 가능성

분류에서Dev

CSS : SVG 스프라이트가 작동하지 않습니다.

분류에서Dev

계산 된 CSS 변수로 작동하지 않는 애니메이션

분류에서Dev

CSS가 연결되지 않았지만 인라인 인 경우 SVG 클립 경로 온라인이 작동합니다.

분류에서Dev

페이드 인 효과에서 CSS 애니메이션 지연이 작동하지 않습니다. 지연 설정에 관계없이 애니메이션이 즉시 시작됩니다.

분류에서Dev

CSS에 인라인 된 SVG는 Chrome / Edge에서 작동하지만 Firefox에서는 작동하지 않습니다.

분류에서Dev

TextField로 작업 할 때 CGRectOffset 애니메이션이 잘못 작동 함

분류에서Dev

TextField로 작업 할 때 CGRectOffset 애니메이션이 잘못 작동 함

Related 관련 기사

  1. 1

    IE에서 작동하지 않는 SVG 라인 애니메이션

  2. 2

    일부 브라우저에서 더 이상 작동하지 않는 스크립팅 된 SVG 애니메이션

  3. 3

    SVG SMIL 경로 애니메이션이 Safari에서 작동하지 않습니다.

  4. 4

    SVG 모양의 획 애니메이션이 제대로 작동하지 않습니다.

  5. 5

    fadeIn, fadeOut 애니메이션이 잘 작동하지 않습니다

  6. 6

    호버시 SVG 원 애니메이션이 작동하지 않습니다.

  7. 7

    jQuery 애니메이션은 FF에서는 잘 작동하지만 다른 모든 브라우저에서는 제대로 작동하지 않습니다.

  8. 8

    잘못된 노드 버전으로 인해 NPM이 작동하지 않습니다.

  9. 9

    Firefox에서 SVG 애니메이션이 작동하지 않음

  10. 10

    Vanilla js 페이드 인 애니메이션이 작동하지 않습니다.

  11. 11

    AVSynchronizedLayer 애니메이션은 로컬 파일에서 잘 작동하지만 스트리밍 중에는 작동하지 않습니다.

  12. 12

    정의 된 경로의 d 속성 애니메이션이 firefox에서 작동하지 않습니다.

  13. 13

    잘못된 web.config 설정으로 인해 기본 문서가 작동하지 않습니다.

  14. 14

    jQuery 두 개의 연속 애니메이션이 작동하지 않습니다.

  15. 15

    jquery 애니메이션 슬라이드가 작동하지 않습니다.

  16. 16

    CSS 애니메이션이 예상대로 작동하지 않습니다.

  17. 17

    jQuery 애니메이션 예제 로직이 작동하지 않습니다.

  18. 18

    jquery 애니메이션이 예상대로 작동하지 않습니다.

  19. 19

    CSS 애니메이션이 예상대로 작동하지 않습니다.

  20. 20

    Jquery navbar 애니메이션이 제대로 작동하지 않습니다.

  21. 21

    CSS 애니메이션이 예상대로 작동하지 않습니다.

  22. 22

    바인딩이 예상대로 작동하지 않습니다. 잘못된 구성 가능성

  23. 23

    CSS : SVG 스프라이트가 작동하지 않습니다.

  24. 24

    계산 된 CSS 변수로 작동하지 않는 애니메이션

  25. 25

    CSS가 연결되지 않았지만 인라인 인 경우 SVG 클립 경로 온라인이 작동합니다.

  26. 26

    페이드 인 효과에서 CSS 애니메이션 지연이 작동하지 않습니다. 지연 설정에 관계없이 애니메이션이 즉시 시작됩니다.

  27. 27

    CSS에 인라인 된 SVG는 Chrome / Edge에서 작동하지만 Firefox에서는 작동하지 않습니다.

  28. 28

    TextField로 작업 할 때 CGRectOffset 애니메이션이 잘못 작동 함

  29. 29

    TextField로 작업 할 때 CGRectOffset 애니메이션이 잘못 작동 함

뜨겁다태그

보관