慕姐4208626
我假设您为此使用了chartjs-plugin-zoom。在chart传递给onPanComplete函数的对象中进行挖掘会发现该scales属性已更新以实现缩放功能。知道了这一点,检索包含label您正在寻找的属性的第一个和最后一个刻度对象是相当简单的。下面是一个片段,演示了通过访问刻度onPanComplete并将它们输出到页面:let ft = document.getElementById("ft"), lt = document.getElementById("lt");new Chart(document.getElementById("chart"), { type: "line", data: { labels: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'], datasets: [{ data: [0, 1, 2, 4, 8, 16, 32, 64, 128, 256] }] }, options: { maintainAspectRatio: false, scales: { xAxes: [{ ticks: { min: 'c', max: 'h' } }] }, plugins: { zoom: { pan: { enabled: true, mode: 'x', onPanComplete: function({ chart }) { let ticks = chart.scales["x-axis-0"]._ticks; ft.innerText = JSON.stringify(ticks[0]); lt.innerText = JSON.stringify(ticks[ticks.length - 1]); } } } } }});<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.1"></script><script src="https://cdn.jsdelivr.net/npm/hammerjs@2.0.8"></script><script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom@0.7.4"></script><canvas id="chart" style="max-height:125px"></canvas><p> First tick: <span id="ft"></span><br>Last tick: <span id="lt"></span></p>