在绘制地图的时候,常常需要添加饼图,柱状图以及文字等。经常发现添加的元素被地图背景覆盖,无论在html文档中如何调整元素的顺序都没有用,百思不得其解。
D3.js默认按照代码顺序加载元素,后来想明白了,地图背景加载比较慢,而文字等小元素加载很快,导致小元素先被加载,背景元素后来加载进而覆盖在小元素之上。解决的思路就是给小元素设置加载时间,让其在背景元素加载完之后再加载,用到的是“setTimeout”函数。
具体用法如下:
setTimeout(function () {
小元素的执行代码写在此 处
}, 3000);//延迟3s执行