vue中路由切换tab,highcharts 3D散点图首次能正确加载,第二次切回页面报错

1.首次加载图正常显示图片描述

2.切换tab切换回来散点消失,并且报错图片描述

3.控制台报错 图片描述

<template>
    <div id="container" style="height: 350px;width:450px;"></div>
</template>
<script>
    var Highcharts = require('highcharts')
    require('highcharts/highcharts-3d')(Highcharts)
    export default{
        data(){
            return {

            }
        },

        mounted() {
            
            
            this.$nextTick(()=>{
                this.start()
            })
        },
        methods:{
            start(){
                
                $(function () {
                    // Give the points a 3D feel by adding a radial gradient
                    Highcharts.getOptions().colors = $.map(Highcharts.getOptions().colors, function (color) {
                        return {
                            radialGradient: {
                                cx: 0.4,
                                cy: 0.3,
                                r: 0.5
                            },
                            stops: [
                                [0, color],
                                [1, Highcharts.Color(color).brighten(-0.2).get('rgb')]
                            ]
                        };
                    });
                    // Set up the chart
                    var chart = new Highcharts.Chart({
                        chart: {
                            backgroundColor: 'rgba(0,0,0,0)',
                            renderTo: 'container',
                            margin: 100,
                            type: 'scatter',
                            options3d: {
                                enabled: true,
                                alpha: 10,
                                beta: 30,
                                depth: 250,
                                viewDistance: 5,
                                frame: {
                                    bottom: { size: 1, color: 'rgba(0,0,0,0.02)' },
                                    back: { size: 1, color: 'rgba(0,0,0,0.04)' },
                                    side: { size: 1, color: 'rgba(0,0,0,0.06)' }
                                }
                            }
                        },
                        title: {
                            text: ''
                        },
                        subtitle: {
                            //text: '单击并拖动鼠标可旋转绘图区'
                        },
                        plotOptions: {
                            scatter: {
                                width: 10,
                                height: 10,
                                depth: 10
                            }
                        },
                        yAxis: {
                            min: 0,
                            max: 10,
                            title: null,
                            labels: {
                                style: {
                                    color: '#fff'
                                }
                            }
                        },
                        xAxis: {
                            min: 0,
                            max: 10,
                            gridLineWidth: 1,
                            labels: {
                                enabled: false
                            }
                        },
                        zAxis: {
                            min: 0,
                            max: 10,
                            labels: {
                                enabled: false
                            }
                        },
                        legend: {
                            enabled: false
                        },
                        series: [{
                            turboThreshold: 44000,
                            colorByPoint: true,
                            data: [[1, 6, 5], [8, 7, 9], [1, 3, 4], [4, 6, 8], [5, 7, 7], [6, 9, 6], [7, 0, 5], [2, 3, 3], [3, 9, 8], [3, 6, 5], [4, 9, 4], [2, 3, 3], [6, 9, 9], [0, 7, 0], [7, 7, 9], [7, 2, 9], [0, 6, 2], [4, 6, 7], [3, 7, 7], [0, 1, 7], [2, 8, 6], [2, 3, 7], [6, 4, 8], [3, 5, 9], [7, 9, 5], [3, 1, 7], [4, 4, 2], [3, 6, 2], [3, 1, 6], [6, 8, 5], [6, 6, 7], [4, 1, 1], [7, 2, 7], [7, 7, 0], [8, 8, 9], [9, 4, 1], [8, 3, 4], [9, 8, 9], [3, 5, 3], [0, 2, 4], [6, 0, 2], [2, 1, 3], [5, 8, 9], [2, 1, 1], [9, 7, 6], [3, 0, 2], [9, 9, 0], [3, 4, 8], [2, 6, 1], [8, 9, 2], [7, 6, 5], [6, 3, 1], [9, 3, 1], [8, 9, 3], [9, 1, 0], [3, 8, 7], [8, 0, 0], [4, 9, 7], [8, 6, 2], [4, 3, 0], [2, 3, 5], [9, 1, 4], [1, 1, 4], [6, 0, 2], [6, 1, 6], [3, 8, 8], [8, 8, 7], [5, 5, 0], [3, 9, 6], [5, 4, 3], [6, 8, 3], [0, 1, 5], [6, 7, 3], [8, 3, 2], [3, 8, 3], [2, 1, 6], [4, 6, 7], [8, 9, 9], [5, 4, 2], [6, 1, 3], [6, 9, 5], [4, 8, 2], [9, 7, 4], [5, 4, 2], [9, 6, 1], [2, 7, 3], [4, 5, 4], [6, 8, 1], [3, 4, 0], [2, 2, 6], [5, 1, 2], [9, 9, 7], [6, 9, 9], [8, 4, 3], [4, 1, 7], [6, 2, 5], [0, 4, 9], [3, 5, 9], [6, 9, 1], [1, 9, 2]]
                        }]
                    });
                    // Add mouse events for rotation
                
                    $(chart.container).bind('mousedown.hc touchstart.hc', function (e) {
                        e = chart.pointer.normalize(e);
                        var posX = e.pageX,
                            posY = e.pageY,
                            alpha = chart.options.chart.options3d.alpha,
                            beta = chart.options.chart.options3d.beta,
                            newAlpha,
                            newBeta,
                            sensitivity = 5; // lower is more sensitive
                        $(document).bind({
                            'mousemove.hc touchdrag.hc': function (e) {
                                // Run beta
                                newBeta = beta + (posX - e.pageX) / sensitivity;
                                newBeta = Math.min(100, Math.max(-100, newBeta));
                                chart.options.chart.options3d.beta = newBeta;
                                // Run alpha
                                newAlpha = alpha + (e.pageY - posY) / sensitivity;
                                newAlpha = Math.min(100, Math.max(-100, newAlpha));
                                chart.options.chart.options3d.alpha = newAlpha;
                                chart.redraw(false);
                            },
                            'mouseup touchend': function () {
                                $(document).unbind('.hc');
                            }
                        });
                    });
                });



            
            },

        }



    }
</script>
阅读 2.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题