1) μλ μ€ν¬λ¦°μ·μ dragPreviewμ κ΄λ ¨λ μ΄μν λ¬Έμ λ₯Ό 보μ¬μ€λλ€. μ κ²½μ°μλ λλκ·Έ κ°λ₯ν ν μ΄λΈ ν λ Έλκ° μμ€μ λμ λͺ¨λμ λλ€. μ΄λ€ μ΄μ λ‘ λλκ·Έ 미리보기μλ μμ€ λ Έλ μ€ν¬λ¦°μ·λΏλ§ μλλΌ μλμ λͺ¨λ νλ ν¬ν¨λ©λλ€! λμμ λλκ·Έ μμ μ 1κ°μ μμ€μ λν΄μλ§ νΈμΆλκ³ λλ‘ νΈλ€λ¬μ μ€μμ μ μλν©λλ€.
2) λν λλ²κΉ κ³Ό μ°κ²°λ μ΄μν μ€λ₯κ° μμ΅λλ€. dragSource λ Έλμ λ λλ§ λ©μλμ μ€λ¨μ μ λκ³ μ±μ κ³μ μ€ννλ©΄ λλκ·Ένλ λμ μ€λ₯κ° λ°μν©λλ€.
μ‘νμ§ μμ μ€λ₯: λλ‘ ν νΈλ²λ₯Ό νΈμΆν μ μμ΅λλ€.
λΆλ³μμ (browser.js?72b5:40)
DragDropManager.hoverμμ (dragDrop.js?3115:111)
Object.evalμμ [νΈλ²λ§μΌλ‘] (DragDropManager.js?b07f:92)
HTML5Backend.handleTopDragEnterμμ (HTML5Backend.js?5f50:495)
κ·Έλ¬λ μμμ μ€λͺ ν dragPreview λ¬Έμ κ° μ¬λΌμ§κ³ λλκ·Έ-λλ‘μ΄ μ λλ‘ μλν©λλ€(ν λ²). κ·Έλ° λ€μ μ΄λκ°μμ λλ‘ μ΄λ²€νΈ 'λλκΉ νλ λμ beginDragλ₯Ό νΈμΆ ν μ μμ΅λλ€'μ€λ₯κ° λ°μνκ³ λλκ·Έκ° μ ν μλνμ§ μμ΅λλ€.
μ‘νμ§ μλ μ€λ₯: λλκ·Ένλ λμ beginDragλ₯Ό νΈμΆν μ μμ΅λλ€.
λΆλ³μμ (browser.js?72b5:40)
DragDropManager.beginDragμμ (dragDrop.js?3115:50)
Object.evalμμ [beginDragλ‘] (DragDropManager.js?b07f:92)
HTML5Backend.handleTopDragStartμμ (HTML5Backend.js?5f50:361)
λ²κ·Έλ Chrome(57 λ° 59)μμλ§ λνλ©λλ€. μ΄λ€ μμ΄λμ΄?
@tTwistTt μ νν μ΄ λ¬Έμ μ μ§λ©΄νκ³ μμ΅λλ€. μμ μ¬νμ μμλμ΅λκΉ?
@kaiomagalhaes μ κ²½μ°μλ ν λμ΄(μ λ΄μ©)μ μμ μμ μ€ νλκ° μ€μ λ‘ ν λμ΄λ³΄λ€ λμ§λ§ κ°μμ±μ μν΄ μ¨κ²¨μ Έ CSSμ μ¨κ²¨μ Έ μκΈ° λλ¬Έμ μ΄ λ¬Έμ κ° λ°μνμ΅λλ€. λ°λΌμ dragSourceμλ νμ λλΉμ μ¨κ²¨μ§ 컨νΈλ‘€μ λμ΄κ° μμ΅λλ€. λμμ΄ λμ ¨κΈ°λ₯Ό λ°λλλ€.
@tTwistTt λλ overflow:hiddenμμλ κ°μ μΌμ΄ μΌμ΄λλ€λ κ²μ νμΈν μ μμ΅λλ€. μλͺ»λ 미리보기 μμ΄ μ΄μ κ°μ μμλ₯Ό λλκ·Ένλ λ°©λ²μ΄ μμ΅λκΉ?
μ΄ λ¬Έμ λ λ«νλλ° μ¬μ ν λ¬Έμ μΈ κ² κ°μλ° λ€μ μ΄μ΄μΌ νλ κ² μλκ°μ?
λν λμΌν λ¬Έμ κ° μμ΅λλ€. λλκ·Έλ₯Ό μμν λ λ―Έλ¦¬λ³΄κΈ°κ° λ무 컀μ μ€λ²νλ‘μ μν΄ μ¨κ²¨μ ΈμΌ νλ λΆλΆμ μ‘΄μ€νμ§ μμ΅λλ€.
μ¬κΈ°μμ μμλ₯Ό λλκ·Ένλ λ°©λ²μ λ³Ό μ μμ§λ§ κ·Έ μμ μλ "ν
λ리"λ 미리보기μ μΌλΆμ
λλ€.
νΈμ§: μμμ μλμ μμΉ μ΄λ―Έμ§λ₯Ό μ¬μ©νμ§ μκ³ λμ λ°°κ²½ μ΄λ―Έμ§κ° μλ divλ₯Ό μ¬μ©νμ¬ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμμ΅λλ€.
λ°λΌμ λΆλͺ¨μκ² λλ¬νλ λ΄λΆ img μμκ° λ¬Έμ λ₯Ό μΌμΌν¨ κ² κ°μ΅λλ€.
μ ν div λνλ μ¬λ£ ui νμ₯ ν¨λμ λλκ·Έν λ λΉμ·ν λ¬Έμ κ° λ°μνμ΅λλ€. κ²°κ΅ ν¨λμ λμ΄κ° νμ₯λ λ―Έλ¦¬λ³΄κΈ°κ° νμλμ§λ§ ν¨λ μ£Όλ³μ νμ΄μ§ μμκ° ν¬ν¨λ λ―Έλ¦¬λ³΄κΈ°κ° νμλ©λλ€. ν¨λμ ν¬κΈ°κ° λ―Έλ¦¬λ³΄κΈ°λ³΄λ€ μμ΅λλ€.
λ΄ ν¬ν¨ μμμ transform: translate3d(0, 0, 0)μ μΆκ°νμ¬ ν¬λ‘¬μμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
@RahulRameshNarayan μ΄κ²λ μ μκ²
μ΄κ²μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ μ΄μ λ₯Ό μκ³ μμ΅λκΉ?
@jsyvino ν¬λ‘¬μμ λ€μ 그리기 λ¬Έμ μ λλ€. translate3dλ ν΄λΉ μμμμ λ λμ νλμ¨μ΄ κ°μμ κ°μ ν©λλ€. μ΄κ²μ λν μ¬λλ€μ΄ κ³ ν΄μλ νλ©΄μμ μ€ν¬λ‘€ μμμ κΉλ°μμ ν΄κ²°νλ λ° μ¬μ©νλ ν΄νΉμ λλ€. λ€μ κΈ°μ¬μμ μ΄ μ£Όμ μ λν΄ μμΈν μ½μ μ μμ΅λλ€.
νλμ¨μ΄ κ°μ CSSλ₯Ό μ¬μ©ν΄ λ΄
μλ€.
https://www.smashingmagazine.com/2012/06/play-with-hardware-accelerated-css/
Chromeμ κ°μ λ λλ§
https://www.html5rocks.com/en/tutorials/speed/layers/
νμΈνΈ 볡μ‘μ± λ¨μν λ° νμΈνΈ μμ κ°μ
https://developers.google.com/web/fundamentals/performance/rendering/simplify-paint-complexity-and-reduce-paint-areas
transform3d(0,0,0)μ μ 체 νμ΄μ§ μ€ν¬λ¦°μ· λ¬Έμ λ₯Ό μμ νμ§λ§ μμμ μμΉκ° μλͺ»λμμ΅λλ€.
μ΄ λ¬Έμ λ ν¬λ‘¬ κΈ°λ° λΈλΌμ°μ μμλ§ λ°μν©λλ€.
λΉμ·ν λ¬Έμ κ° μλ μ¬λμ΄ μμκ³ μ΄λ»κ² ν΄κ²°νμ΅λκΉ?
Material-UI ListItemμ λλκ·Έ κ°λ₯ν λ Έλλ‘ μ¬μ©ν λ Chrome 75μμλ μ΄ λ¬Έμ κ° λ°μν©λλ€. overflow: hidden μ ν¬ν¨λ Ripple μμκ° ν¬κΈ° λΆμΌμΉμ μμΈμ΄λΌκ³ μκ°ν©λλ€.
@makr11μ΄ μΈκΈ νλ―μ΄ @RahulRameshNarayan μ μμ μ μ΄ λ¬Έμ λ₯Ό μ΄λ»κ²λ ν΄κ²°νμ§λ§(λλκ·Έ 미리보기μμ μ£Όλ³ μμλ₯Ό μ¨κΉμΌλ‘μ¨), μ¬μ ν ν΄λΉ μμκ° λ³΄μ΄λ κ²μ²λΌ μμΉ μ€νμ μ΄ μμΌλ―λ‘ μ¬μ ν 'κΉ¨μ Έ μμ΅λλ€. ' μ μκ°μλ.
DOM λλ λ€μ΄ν°λΈ/HTML5 λλκ·Έ 미리보기 μμ± μμ€μμ 보μ΄λ κ·Όλ³Έμ μΈ λ¬Έμ κ° λ¬΄μμΈμ§ μ΄ν΄νλ μ¬λμ΄ μμ΅λκΉ? μ΄ λ¬Έμ λ₯Ό μ¬λ°λ₯΄κ² ν΄κ²°νκ³ μΆμ΅λλ€.
μ¬κΈ°μμλ λ§μ°¬κ°μ§λ‘ Chrome 75μμ μ΄ λ¬Έμ κ° λ°μνκ³ Firefoxμμλ μ λλ‘ μλν©λλ€... λ€μ μ΄μ΄μΌ ν©λλ€!
λ΄ μ¬μ© μ¬λ‘λ ꡬ체μ μ΄μ§λ§ λκ΅°κ°μκ² λμμ΄ λ μ μμ΅λλ€. λλ react-dndλ₯Ό μ¬μ©νλ velocity-dashboardλ₯Ό μ¬μ©νκ³ λ΄λΆ μμ ―(λλκ·Έ κ°λ₯ν κ΅¬μ± μμ)μ react-chart-jsλ‘ λ λλ§λ©λλ€. μ°¨νΈ-jsκ° μμ ― λ΄λΆμμ λ λλ§λ λ λ¬Έμ κ° λ°μνμ΅λλ€. μμ ―μ΄ λλκ·Έ κ°λ₯νλ©΄ κΈ°λ³Έ divκ° chart-js κ΅¬μ± μμκ° μλ μμ ― λ΄λΆμ λ λλ§λλλ‘ μ€μ νμ΅λλ€.
λ€μ λ§νμ§λ§, κ·Έκ²μ κ½€ ꡬ체μ μ΄κ³ λλ κ·Έ μ£Όμ μ λν μ λ¬Έκ°λ μλμ§λ§ μλ§λ μ΄κ²μ΄ λκ΅°κ°λ₯Ό λμΈ κ²μ λλ€.
λ¬Έμ λ μ¬μ ν μ¬νλμ§λ§(Chrome 75.0.3770.100) μμλ₯Ό ν¬ν¨νκΈ° μν΄ transform: translate3d(0) μ μΆκ°νμ¬ ν΄κ²°λ©λλ€. @RahulRameshNarayan κ°μ¬ν©λλ€
μ λ κ°μ κ³ λ―Όμ νκ³ μμ΅λλ€. transform: translate3d(0, 0, 0)
λ₯Ό μΆκ°νμ¬ ν΄κ²°νλ €κ³ νμ§λ§ @makr11 κ³Ό λμΌν λ¬Έμ κ° μμ΅λλ€. https://github.com/react-dnd/react-dnd/issues/832#issuecomment -501292272
λ¬Έμ λ μ¬μ ν μ‘΄μ¬:
μ¬ν리 13.0.1
ν¬λ‘¬ 80
transform: translate3d(0, 0, 0)
λμμ΄ λμ§λ§ μΈν°νμ΄μ€μ λ€λ₯Έ μ€νμΌ/μμμ μν₯μ μ€ μ μμ΅λλ€.
@mismith μ νν μ΄ λ¬Έμ (MUI ListItem μ¬μ©)λ‘ μ΄λ €μμ κ²ͺκ³ μμ΅λλ€.
@dotbear μ¬νκ²λ, λλ λ¨μ§ κ·Έκ²κ³Ό ν¨κ» μ΄κ³ μμ΅λλ€ :(
λλ μ΄ λ¬Έμ κ° κ±°λν μ€νμ λ¬Έμ λ₯Ό νΌνλ 곡μμ μΈ ν΄κ²° λ°©λ² μμ΄ μ’ λ£λμ΄μλ μ λλ€λ λ° λμν©λλ€.
μ΄ λ¬Έμ μ κ΄λ ¨λ λ΄μ€κ° μμ΅λκΉ?
κ°μ₯ μ μ©ν λκΈ
λ΄ ν¬ν¨ μμμ transform: translate3d(0, 0, 0)μ μΆκ°νμ¬ ν¬λ‘¬μμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.