2014-06-10 8 views
5

मैं पैन कार्यक्षमता के साथ एक मूल रैखिक चार्ट पर काम कर रहा हूं।d3.js: सीमा के साथ पैन

मैं हद चार्ट तत्वों d3.event.translate मूल्यों को सीमित करके घसीटा जा सकता है जो करने के लिए सीमित करने के लिए कामयाब रहे:

var tx = Math.max(0, d3.event.translate[0]), 
    ty = Math.min(0, d3.event.translate[1]); 

सभी मैं अब जरूरत है x सीमित करने के लिए है और y तदनुसार अक्ष। उदाहरण देखें: http://jsfiddle.net/Q2SWV/

चार्ट पर बार 0 से नीचे या बाईं ओर खींचते समय सीमित हैं। एक्स और वाई अक्ष नहीं हैं। धुरी समस्या को ठीक करने के तरीके पर कोई विचार?

उत्तर

5

आप बहुत करीब हैं, लेकिन आप अपने अपडेट किए गए अनुवाद निर्देशांक के साथ zoom व्यवहार को अपडेट करने का अंतिम चरण खो रहे हैं। यह आपकी समस्या को ठीक करेगा क्योंकि दोनों अक्ष zoom का उपयोग करके अपडेट किए गए हैं। tx और ty का निर्धारण करने के बाद निम्नलिखित सही जोड़ें:

zoom.translate([tx, ty]); 

यह आपके कुल्हाड़ियों के लिए सीमा लागू होगी। यहां अद्यतन पहेली देखें: http://jsfiddle.net/mdml/nZD3E/

+0

मुझे पता है कि यह बहुत समय पहले था, लेकिन इसमें केवल 2 पक्षों की सीमा है, यानी x [0], y [0], मैं इसे सभी 4 तरफ से कैसे कर सकता हूं? उदाहरण के लिए, मैं केवल 0 और 100 के बीच वाई दिशा में जा सकता हूं, और एक्स के साथ ही? – thatOneGuy

+0

यह उदाहरण काम नहीं करता है (पता नहीं है कि एक नए डी 3 संस्करण के कारण)। – jarandaf