0

차트를 만들 때 HighChart JS를 사용했습니다. 나의 유일한 변화는 차트의 각 시리즈에 대한 애니메이션을 만드는 것이 었습니다.IE8에서 JQuery 애니메이션이 작동하지 않습니다.

모두 잘되었지만 문제는 IE8에서 작동하지 않는다는 것입니다. 그것은 IE9, IE10 및 다른 모든 정상적인 브라우저에서 작동합니다.

나는 여기에 바이올린을 만들었고 당신이 볼 수 있다면 감사 할 것입니다.

chart: { 
      type: 'bubble', 
      width: 650, 
      height: 450, 
      zoomType: 'xy', 
      events: { 
       load: function (event) { 

        this.series.forEach(function (d, i) { 
         if (d.options.id == 1) { 
          setTimeout(function() { 
           d.show(); 
          }, 100); 

         } 
         if (d.options.id == 2) { 
          setTimeout(function() { 
           d.show(); 
          }, 1000); 
         } 
         if (d.options.id == 3) { 
          setTimeout(function() { 
           d.show(); 
          }, 2000); 
         } 
         if (d.options.id == 4) { 
          setTimeout(function() { 
           d.show(); 
          }, 3000); 
         } 
         if (d.options.id == 5) { 
          setTimeout(function() { 
           d.show(); 
          }, 4000); 
         } 
         if (d.options.id == 6) { 
          setTimeout(function() { 
           d.show(); 
          }, 5000); 
         } 
        }) 

       } 
      } 
     }, 
     . . . 

답변

3

IE 8은 배열에 대한 .forEach() 반복자를 지원하지 않습니다 - : 이것은 내가 쓴 어디서이 시간 초과 애니메이션을 만들 것입니다

http://jsfiddle.net/DUvQW/

. for (var i = 0; i < array.length; i++) 반복 배열 방법으로 전환하거나 .forEach()에 대한 polyfill을 설치할 수 있습니다. polyfill에 대해서는 this MDN page을 참조하십시오. http://jsfiddle.net/jfriend00/yMRP8/

또는 : 정기적 for 루프로 전환하면

, 당신은 여기 같은 루프의 각 반복에 대한 d에 대해 고유 한 값을 캡처하는 인생 (즉시 실행 함수 표현식)을 사용해야합니다 IE8 : http://jsfiddle.net/jfriend00/6kybR/에 대한 지원을 추가하려면 여기에 표시된대로 .forEach()에 대한 polyfill을 추가 할 수 있습니다. jsFiddle 자체는 IE8을 지원하지 않기 때문에 jsFiddle은 IE8에서 작동하지 않습니다. 자신의 실제 코드로 IE8에서 polyfill을 테스트해야합니다.

+0

고맙습니다. 나는 이것이 많은 것을 요구할지도 모른다는 것을 알고있다. 그러나 당신은 그것에 따라 바이올린을 비틀 수 있다고 생각하니? – Steve

+0

@Steve - 두 가지 다른 jsFiddle 솔루션이 내 대답에 추가되었습니다. – jfriend00

+0

고맙습니다. – Steve

관련 문제