Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery highcharts版本中的更改会中断元素的动画_Jquery_Animation_Highcharts - Fatal编程技术网

Jquery highcharts版本中的更改会中断元素的动画

Jquery highcharts版本中的更改会中断元素的动画,jquery,animation,highcharts,Jquery,Animation,Highcharts,你好!我们为气泡图编写了一些基本的动画逻辑,以便在谷歌决定放弃Gapminder运动图时创建一个非常基本的版本。一切都很顺利,直到我们最近开始运行jquery/ui/highcharts的更新版本。我看不出在5.06和5.07之间的changelog中会有什么变化会破坏它,但它似乎在这两个版本中。jquery版本似乎对它没有影响。有什么想法吗 function animateCircle(dataObject, year, autoContinue){ var country = dat

你好!我们为气泡图编写了一些基本的动画逻辑,以便在谷歌决定放弃Gapminder运动图时创建一个非常基本的版本。一切都很顺利,直到我们最近开始运行jquery/ui/highcharts的更新版本。我看不出在5.06和5.07之间的changelog中会有什么变化会破坏它,但它似乎在这两个版本中。jquery版本似乎对它没有影响。有什么想法吗

function animateCircle(dataObject, year, autoContinue){
    var country = dataObject.graphic.element.getAttribute('name'),
        data = translatedData[year][country],
        rawData = getDataByYearByCountry(year, country);

    dataObject.x = rawData.x;   
    dataObject.y = rawData.y;   
    dataObject.z = rawData.z;   

    if(theChart.hoverPoint==dataObject){
        theChart.tooltip.label.attr('text', '<b>'+country+' ('+ year +')</b><br/>'+xAxisVariable+': '+rawData.x+'<br/>'+yAxisVariable+': '+rawData.y+'<br/>'+zAxisVariable+': '+rawData.z);
    }

    currentYear = year;

    yearSlider.slider('option', 'value', year);
    yearSlider.slider('option', 'slide').call(yearSlider, null, {value: year});

    dataObject.graphic.isAnimating = true;

    dataObject.graphic.animate({cx: data.x, cy: data.y, r: data.z}, {duration: 1000, easing: 'linear', complete: function(){
        this.isAnimating = false;
        if(autoContinue && !stoppingAnimationNow){
            animateCircle(dataObject, year==2013 ? 2000 : year+1, autoContinue);
        }
    }});
}
函数animateCycle(数据对象、年份、自动连续){
var country=dataObject.graphic.element.getAttribute('name'),
数据=换算数据[年份][国家],
rawData=GetDataByEarbyCountry(年份,国家);
dataObject.x=rawData.x;
dataObject.y=rawData.y;
dataObject.z=rawData.z;
if(theChart.hoverPoint==数据对象){
theChart.tooltip.label.attr('text'、'+country+'('+year+'))
'+xAxisVariable+':'+rawData.x+'
'+yAxisVariable+':'+rawData.y+'
'+zAxisVariable+':'+rawData.z); } 当前年份=年; 年份滑块。滑块('选项','值',年份); slider.slider('option','slide').call(yearSlider,null,{value:year}); dataObject.graphic.isAnimating=true; dataObject.graphic.animate({cx:data.x,cy:data.y,r:data.z},{duration:1000,easing:'linear',complete:function(){ this.isAnimating=false; 如果(自动继续&!立即停止动画){ animateCircle(数据对象,年份==2013?2000:年份+1,自动连续); } }}); }

气泡似乎移动很小,然后什么也没有,但没有错误消息可跟踪。

自Highcharts v5.0.7以来,气泡不再是圆形,而是路径,因此需要设置
x
y
属性的动画:

    dataObject.graphic.animate({
        x: data.x,
        y: data.y,
        r: data.z
    }, ...);


现场演示:

Hi@jdower27,你能用jsfiddle重现这个问题吗?当然,这应该有必要的逻辑和几年的数据。很抱歉,公共链接是啊,我没有在变更日志的任何地方找到它,但这是有意义的。我在办公室的时候会试试的。谢谢。我认为这与:
增加了对气泡图上marker.symbol设置的支持有关。资料来源:我相信你是对的,我想我没想到它会删除现有的圆圈。看起来不错!