Изменение в старшей версии нарушает анимацию элементов - PullRequest
2 голосов
/ 11 октября 2019

Добрый день! Мы написали базовую анимационную логику для пузырьковых диаграмм, чтобы создать очень простую версию движущихся диаграмм Gapminder, когда Google решил отказаться от них. Все было хорошо, пока мы недавно не начали обновлять наши версии jquery / ui / highcharts. Я не вижу, что изменилось бы в журнале изменений между 5.06 и 5.07, что могло бы его сломать, но, похоже, в этих двух версиях. Версия 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);
        }
    }});
}

Пузыри, кажется, слегка смещаются, а затем ничего, но нет сообщений об ошибках для отслеживания.

1 Ответ

0 голосов
/ 14 октября 2019

Начиная с Highcharts v5.0.7, пузыри уже не круги, а пути, поэтому вам нужно анимировать свойства x и y:

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

Демонстрация в реальном времени: https://jsfiddle.net/BlackLabel/t6z5wL4j/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...