感谢您提供帮助以更新下面的代码以在版本4中工作。我已将zoom.behaviour更改为d3.zoom,但我不清楚所需的其他更改。看起来比v3还要复杂!

<!DOCTYPE html>
<html>
<head>
<!-- <script type="text/javascript" src="http://d3js.org/d3.v3.js"></script>--> <script data-require="d3@4.0.0" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script> <style type="text/css">
body, html {
width: %;
height: %;
margin: ;
}
svg {
position: absolute;
top: ;
left: ;
}
p {
text-align: center;
}
</style>
</head>
<body>
<p>Use the mouse to pan (click and move) / zoom (scrollwheel)</p>
</body>
<script type="text/javascript">
var svg = d3.select("body")
.append("svg")
.attr("width", "100%")
.attr("height", "100%")
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", "translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")")
}))
.append("g") svg.append("circle")
.attr("cx", document.body.clientWidth / )
.attr("cy", document.body.clientHeight / )
.attr("r", )
.style("fill", "#B8DEE6")
</script>
</html>

仅缩放x轴的方法:

svg.attr(
"transform",
'translate('+d3.event.transform.x+',0) scale('+d3.event.transform.k+',1)'
)}))

对于那些想要限制平移和缩放边界的人。

更改此:

// width, height = viewport width, height
.call(d3.zoom().on("zoom", function () {
var tx = Math.min(, Math.max(d3.event.translate[], width - width * d3.event.scale));
var ty = Math.min(, Math.max(d3.event.translate[], height - height * d3.event.scale));
svg.attr("transform", "translate(" + [tx, ty] + ") scale(" + d3.event.scale + ")");
});

对此:

.call(d3.zoom().on("zoom", function () {
d3.event.transform.x = Math.min(, Math.max(d3.event.transform.x, width - width * d3.event.transform.k));
d3.event.transform.y = Math.min(, Math.max(d3.event.transform.y, height - height * d3.event.transform.k));
svg.attr("transform", d3.event.transform);
}));

最新文章

  1. websocket业务代码
  2. visual studio 2015连接到MySql相关问题
  3. mongoose操作汇总。嘻嘻
  4. Delphi JCL JEDI使用 jclDebug
  5. http://blinkfox.com/shi-yong-spring-aoplai-tong-ji-fang-fa-de-zhi-xing-shi-jian/
  6. 向已写好的多行插入sql语句中添加字段和值
  7. Linux 常见的进程调度算法
  8. 关于win7系统中所有exe文件都被以word方式打开的解决方法
  9. C++: 单例模式和缺陷
  10. C++ 11 笔记 (一) : lambda
  11. 初建FreeMarker工程
  12. sublime在Mac osx下安装z-codeing(即emmet)
  13. ORACLE基本SQL语句-查询篇
  14. mysqldump导入导出mysql数据库
  15. MapReduce工作原理流程简介
  16. django的母板系统
  17. Vuejs——(6)Vuejs与form元素
  18. socket:10038错误
  19. PAT 1089 狼人杀-简单版(20 分)(代码+测试点分析)
  20. Arrow functions and the ‘this’ keyword

热门文章

  1. Selenium IDE安装及简介
  2. 洛谷1265prim算法求最小生成树
  3. 图-搜索-DFS-37. 解数独
  4. [状态压缩,折半搜索] 2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem
  5. BP神经网络及异或实现
  6. [洛谷1437&amp;Codevs1257]敲砖块&lt;恶心的dp&gt;
  7. Pytest系列(4) - fixture的详细使用
  8. 逍遥云天 H5外部浏览器直接调起微信——通过url协议 weixin:// 判断是否安装微信及启动微信
  9. html5调用手机摄像头
  10. python正则表达式去除文本中间的换行符