में लागू होने पर संक्रमण फ़्लिकर/स्टटर क्यों करते हैं, मैं संक्रमण के साथ गड़बड़ कर रहा था और मैंने कुछ अलग-अलग फ़ंक्शन में चयन पर संक्रमण लागू होने पर कुछ स्टटरिंग और झिलमिलाहट देखी। यदि, हालांकि, संक्रमण विधि विधि के साथ लागू किया जाता है, यह बिल्कुल निर्धारित के रूप में कार्य करता है।एक अलग फ़ंक्शन (डी 3)
नीचे कुछ पाठ को स्थानांतरित करने के नीचे नीचे छोटा उदाहरण (Fiddle) है। पहला, बाएं, स्ट्रिंग जादुई रूप से संक्रमण शुरू होने से पहले पेज को नीचे भेजता है। दूसरी, दाएं, स्ट्रिंग में पृष्ठ के शीर्ष से नीचे तक एक चिकनी संक्रमण होता है।
यह 'टेलीपोर्ट' क्यों होता है? स्पष्ट रूप से एक अलग समारोह में संक्रमण लागू करना इसे चेन करने जैसा नहीं है, लेकिन क्या यह हासिल करने का कोई तरीका है? कहें, मैं कई अलग-अलग ऑब्जेक्ट्स में एक ही संक्रमण को लागू करना चाहता हूं - विभिन्न चयनों से पुनर्प्राप्त - फिर क्या इस स्टटरिंग के बिना संक्रमण को अपने स्वयं के फ़ंक्शन में बदलने का कोई तरीका है?
var svg = d3.select('svg');
var textElem = svg.append('text')
.data(['hello world'])
.attr('x', 30)
.attr('y', 100)
.attr('fill', '#000')
.attr('id', 'a')
.text(function (d) {
return d;
});
var textElem2 = svg.append('text')
.data(['some text'])
.attr('x', 230)
.attr('y', 100)
.attr('fill', '#000')
.attr('id', 'a')
.text(function (d) {
return d;
});
setTimeout(foo, 3000);
function foo() {
textElem.data(['hello world, again!']);
applyTextTransitions(textElem);
textElem.attr({
x: 30,
y: 150
});
textElem.text(function (d) {
return d;
});
textElem2.data(['some more text!'])
.transition()
.duration(1000)
.style('opacity', 0)
.transition()
.duration(1000)
.style('opacity', 1)
.attr({
x: 230,
y: 150
})
.text(function (d) {
return d;
});
}
function applyTextTransitions(element) {
element
.transition()
.duration(1000)
.style('opacity', 0)
.transition()
.duration(1000)
.style('opacity', 1);
}
यह करीब है। हालांकि नया पाठ संक्रमण से पहले जादुई रूप से प्रकट होता है। आदर्श रूप से इसे दूसरी स्ट्रिंग के साथ व्यवहार करना चाहिए जहां पुरानी स्ट्रिंग फीका हो जाती है, और फिर नई स्ट्रिंग फीका होती है। – Fjotten
अपडेट की तरह? – Trace
बिल्कुल सही! मैंने नहीं सोचा कि एक तरह से, स्वीकार्य रूप से। – Fjotten