從this question我知道如何在D3.js中禁用鼠標滾輪縮放功能。我如何將其重新映射到按住控制按鈕並加上鼠標滾輪?謝謝。將D3.js從鼠標滾輪變爲控制+鼠標滾輪
1
A
回答
2
我找到了一個不需要修改D3.js源代碼的解決方案。
我根據我對這個問題的解決方案:How to temporarily disable the zooming in d3.js
而是點擊一個按鈕來啓用/禁用變焦,我用的keydown/KEYUP事件:
svg.call(zoom = d3.behavior.zoom().on('zoom', redrawOnZoom)).on('dblclick.zoom', null);
var zooming = false;
function redrawOnZoom() {
if (zooming) {
svgContainer.attr('transform', 'translate(' + zoom.translate() + ')' + ' scale(' + zoom.scale() + ')');
}
};
d3.select("body").on("keydown", function() {
zooming = d3.event.ctrlKey;
});
d3.select("body").on("keyup", function() {
zooming = false;
});
這是一個完整的小提琴:https://jsfiddle.net/tabacof/dcbor8eL/3/
+0
,但縮放比例在您滾動時仍會更改,但不會縮放。 – eagor
0
將過濾器功能添加到縮放處理程序(https://github.com/d3/d3-zoom#zoom_filter)。
在d3.event
中,元素ctrlKey
(https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/ctrlKey)指示控制鍵是否被按下。
在過濾函數中返回false
會忽略該事件。
zoom.filter(function() {
return d3.event.ctrlKey;
});
相關問題
- 1. 控制鼠標滾輪滾動距離?
- 2. SetKeyDelay鼠標滾輪
- 3. Popup - 滾動鼠標滾輪
- 4. 控制鍵加鼠標滾輪
- 5. D3 V4泛用鼠標滾輪
- 6. LWJGL鼠標滾輪輸入
- 7. jQuery綁定鼠標滾輪
- 8. 鼠標滾輪click&jquery.delegate
- 9. jscrollpane水平鼠標滾輪
- 10. python詛咒鼠標滾輪
- 11. 防反跳鼠標滾輪
- 12. 鼠標滾輪事件
- 13. as3鼠標滾輪反轉
- 14. 鼠標滾輪導航
- 15. Adobe AIR鼠標滾輪
- 16. ContextMenuStrip和鼠標滾輪
- 17. 鼠標滾輪速度
- 18. scrollSnap js與鼠標滾輪阻力
- 19. 滾動面板鼠標滾輪滾動
- 20. 輪事件brokes鼠標滾輪的JavaScript
- 21. WPF滑塊控件鼠標滾輪
- 22. VB6:啓用鼠標滾輪控件
- 23. 鼠標滾輪變焦條形圖
- 24. D3鼠標滾輪放大行爲的限制
- 25. 鼠標滾輪滾動DIV元件
- 26. 更換鼠標滾輪滾動條?
- 27. 鼠標滾輪滾動水平
- 28. jquery水平滾動鼠標滾輪
- 29. ScrolledComposite不滾動鼠標滾輪
- 30. iScroll 4水平鼠標滾輪滾動
您需要修改D3源才能訪問相關的事件處理程序。請參閱https://github.com/mbostock/d3/blob/master/src/behavior/zoom.js –