标签:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>d3</title>
</head>
<body>
<div class="test">
</div>
<script src="../js/jquery-2.1.4.js"></script>
<script src="../js/d3.js"></script>
<script>
$(function(){
var zoom = d3.behavior.zoom()
// css3 scale 属性
// .scale(5)
// .translate 也是类似的
// .center([20, 20]) // 鼠标滚轮缩放的焦点。
// .size([900, 400]) // 不知道
.scaleExtent([1, 10])
// .duration(10000)
.on(‘zoom‘, zoomed)
// .event(‘svg‘) // 不知道
;
function zoomed(d) {
// debugger
console.log(‘zoomed:‘+d3.event.translate+"; "+d3.event.scale);
d3.select(this).attr("transform", "translate("+d3.event.translate+")scale("+d3.event.scale+")");
// d3.select(this).attr("transform", "translate("+d3.event.translate+")");
// d3.select(this).attr("transform", "scale("+d3.event.scale+")");
// zoom.scale(2);
}
var svg = d3.select(‘.test‘)
.selectAll(‘svg‘)
.data([{
x: 120,
y: 62
}])
.enter()
.append(‘svg‘)
.attr(‘width‘, 240)
.attr(‘height‘, 125)
;
// zoom.center([0, 0]);
svg.append(‘circle‘)
.attr({
r: 20,
cx: function(d) {
return d.x;
},
cy: function(d){
return d.y
}
})
.call(zoom);
;
})
</script>
</body>
</html>
常用的看明白了,还有几个地方不太明白。
写过的zoom函数
.on("zoom", function(){
that.svg_obj.select(".x.axis").call(xAxis);
var _lines = that.lines;
for(var i=0; i<_lines.length; i++){
that.svg_obj.select(".g"+i+" path.line")
.attr("d", lineFunction(_lines[i].dataset))
;
that.svg_obj.select(".g"+i+" path.area")
.attr("d", areaFunction(_lines[i].dataset))
;
that.svg_obj.selectAll(".g"+i+" circle").attr("d", function(){
that.svg_obj.selectAll(".g"+i+" circle").attr(‘cx‘, function(d,i){
return xScale(i);
})
.attr(‘cy‘, function(d){
return yScale(d);
})
;
});
}
});
标签:
原文地址:http://www.cnblogs.com/wang-jing/p/5785119.html