ECharts柱狀圖過多添加滾動條的步驟(親測可用)
更新時間:2024年01月11日 11:21:08 作者:凌霄玉階非所愿
這篇文章主要介紹了ECharts柱狀圖過多添加滾動條的步驟(親測可用),添加echarts柱狀圖滾動條,首先添加js用來判斷當前視圖要顯示幾個及是否顯示滾動條,本文結合實例代碼介紹的非常詳細,需要的朋友參考下吧
ECharts柱狀圖過多添加滾動條的步驟(親測可用)
echarts引用js需較新版本,否則會不顯示
附ECharts官網(wǎng)地址
添加echarts柱狀圖滾動條,步驟如下:
首先添加js用來判斷當前視圖要顯示幾個及是否顯示滾動條:
var _DEPTNUMER = []; //存入所有科室
var showEchart = false;
var namenum = 0;
if (_DEPTNUMER.length > 0) {
namenum = Math.floor(100 / (_DEPTNUMER.length / 3)); //這個3可以順便調整是用來判斷當前視圖要顯示幾個
if (_DEPTNUMER.length > 3) { //3也可以調整用來判斷是否顯示滾動條
showEchart = true;
} else {
showEchart = false;
}
}添加echarts滾動條:
dataZoom: [
{
type: 'slider',
realtime: true,
start: 0,
end: namenum, // 數(shù)據(jù)窗口范圍的結束百分比。范圍是:0 ~ 100。
height: 5, //組件高度
left: 5, //左邊的距離
right: 5, //右邊的距離
bottom: 10, //下邊的距離
show: showEchart, // 是否展示
fillerColor: "rgba(17, 100, 210, 0.42)", // 滾動條顏色
borderColor: "rgba(17, 100, 210, 0.12)",
handleSize: 0, //兩邊手柄尺寸
showDetail: false, //拖拽時是否展示滾動條兩側的文字
zoomLock: true, //是否只平移不縮放
moveOnMouseMove: false, //鼠標移動能觸發(fā)數(shù)據(jù)窗口平移
//zoomOnMouseWheel: false, //鼠標移動能觸發(fā)數(shù)據(jù)窗口縮放
//下面是自己發(fā)現(xiàn)的一個問題,當點擊滾動條橫向拖拽拉長滾動條時,會出現(xiàn)文字重疊,導致效果很不好,以此用下面四個屬性進行設置,當拖拽時,始終保持顯示六個柱狀圖,可結合自己情況進行設置。添加這個屬性前后的對比見**圖二**
startValue: 0, // 從頭開始。
endValue: 6, // 最多六個
minValueSpan: 6, // 放大到最少幾個
maxValueSpan: 6, // 縮小到最多幾個
},
{
type: "inside", // 支持內部鼠標滾動平移
start: 0,
end: namenum,
zoomOnMouseWheel: false, // 關閉滾輪縮放
moveOnMouseWheel: true, // 開啟滾輪平移
moveOnMouseMove: true // 鼠標移動能觸發(fā)數(shù)據(jù)窗口平移
}
]如下圖:

圖二更改前(鼠標放到滾動條上面左右拖拽拉長時):

更改后:

擴展:
echarts使用getZr()事件獲取柱狀圖當前點擊列的數(shù)據(jù)
var t = document.getElementById("cardChart");
t.style.width = window.offsetWidth + "px";
var cardChart = echarts.init(t),
options = {
color: ['#3398DB'],
title: {
left: "right",
//text: new Date().getFullYear() + "年數(shù)據(jù)",
textStyle: {
color: "#2c2c2c",
fontSize: 14,
fontWeight: 500
}
},
tooltip: {
trigger: 'axis',
axisPointer: { // 坐標軸指示器,坐標軸觸發(fā)有效
type: 'shadow' // 默認為直線,可選為:'line' | 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: "category",
data: dataYearCountName,
axisTick: {
alignWithLabel: true
},
axisLabel: {
interval: 0, //強制文字產生間隔
rotate: 45, //文字逆時針旋轉45°
textStyle: { //文字樣式
color: "black",
fontSize: 14,
fontFamily: 'Microsoft YaHei'
}
}
}],
yAxis: [
{
type: "value"
}
],
series: [
{
name: "例數(shù)",
type: "bar",
barWidth: "60%",
data: dataYearCountNum
}
]
};
//-----------------從這里開始 -----------------
//cardChart 柱狀圖名稱
cardChart.setOption(options);
cardChart.off('click'); //防止觸發(fā)兩次點擊事件
cardChart.getZr().on('click', (params) => {
let pointInPixel = [params.offsetX, params.offsetY];
if (cardChart.containPixel('grid', pointInPixel)) {
let pointInGrid = cardChart.convertFromPixel({
seriesIndex: 0
}, pointInPixel);
let xIndex = pointInGrid[0]; //索引
let handleIndex = Number(xIndex);
let seriesObj = cardChart.getOption(); //圖表object對象
var op = cardChart.getOption();
//獲得圖表中點擊的列
var month = op.xAxis[0].data[handleIndex]; //獲取點擊的列名
console.log(month);
console.log(handleIndex, seriesObj);
};
});到此這篇關于ECharts柱狀圖過多添加滾動條(親測可用)的文章就介紹到這了,更多相關ECharts柱狀圖滾動條內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
javascript實現(xiàn)判斷鼠標的狀態(tài)
這篇文章主要介紹了javascript實現(xiàn)判斷鼠標的狀態(tài)的相關代碼,十分簡單實用,有需要的小伙伴可以參考下。2015-07-07
Egg.js構建一個stream流式接口服務實現(xiàn)詳解
這篇文章主要為大家介紹了Egg.js構建一個stream流式接口服務實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09

