मंच को कुछ गति के साथ खींचने का सबसे अच्छा तरीका क्या होगा जैसे कि आपके पास Google मानचित्र पर है, जहां माउस को छोड़ने के बाद, चरण तब तक चलता रहता है जब तक कि वह रुक नहीं जाता?

मेरे पास पहले से ही एक खींचने योग्य चरण है और मेरे पास कुछ आंदोलन प्रतिबंध हैं:

stage.on("dragmove", function(evt) {
  // read absolute position
  const oldAbs = xaxis.absolutePosition();

  xaxis.absolutePosition({
   x: oldAbs.x,
   y: 0
  });
});

क्या मैं स्टेज ड्रैगेंड पर किसी प्रकार का एनीमेशन/ट्वीन जोड़ सकता हूं?

1
dbeja 31 मार्च 2020, 20:34

1 उत्तर

सबसे बढ़िया उत्तर

अतिरिक्त एनीमेशन लागू करने के लिए आपको नोड की गति की गति जानने की आवश्यकता है।

सबसे सरल कार्यान्वयन इस तरह हो सकता है:

let lastPos;
let speed = {};
stage.on('dragstart', () => {
  lastPos = stage.position();
});

stage.on('dragmove', () => {
  const pos = stage.position();
  speed.x = pos.x - lastPos.x;
  speed.y = pos.y - lastPos.y;
  lastPos = pos;
})

stage.on('dragend', () => {
  stage.to({
    x: stage.x() + speed.x * 5,
    y: stage.y() + speed.y * 5
  })
})

डेमो: https://jsbin.com/kibidomuge/edit?html,js,output< /ए>

बेहतर UX के लिए आपको गति की गणना करने के लिए एक बेहतर तरीका खोजने की आवश्यकता हो सकती है। उदाहरण के लिए आप स्टेज कंटेनर पर https://hammerjs.github.io/ लाइब्रेरी का उपयोग कर सकते हैं।

1
lavrton 2 अप्रैल 2020, 15:59