ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

ИспользованиС Drag&Drop в HTML 5

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя для создания Drag&Drop Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° использовались JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π½Π΅ всСгда ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ HTML 5 Π΅ΡΡ‚ΡŒ способ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Drag&Drop, с нСбольшим ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ JavaScript. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½ наглядный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ примСнСния Drag&Drop Π² HTML 5.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ

На сСгодняшний дСнь функция Drag&Drop Π² HTML 5 ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ обрабатываСтся всСми соврСмСнными Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, (частично Π΄Π°ΠΆΠ΅ IE 5.5!), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ caniuse.com.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Бобытия Drag&Drop

НиТС пСрСчислСны события Drag&Drop, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс пСрСтаскивания:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ dataTransfer

Π—Π΄Π΅ΡΡŒ происходит сам процСсс пСрСтаскивания. НаиболСС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Drag&Drop

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим наглядный простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Drag&Drop, Π³Π΄Π΅ Π΄Π²Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… синих div’Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² большой красный, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡ… Π½Π° исходноС мСсто.

Начало пСрСтаскивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ Π±Π»ΠΎΠΊΠΎΠ², Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ draggable:

Π—Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π°Ρ‡Π°Π»Π° процСсса:

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Π·Π°Π΄Π°Π½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ пСрСтаскивания β€” move, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ процСсса β€” Ρ‚ΠΈΠΏ (Text) ΠΈ ID. Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкС setDragImage опрСдСляСт ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ курсора, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π² сСрСдинС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° 200Ρ…200 пиксСлСй.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ пСрСтаскивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ события: dragEnter, dragOver ΠΈ drop:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, трСбуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса пСрСтаскивания β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ с элСмСнтами, ΠΊΠΎΠ³Π΄Π° курсор Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½:

Π’ Π΄Π°Π½Π½ΠΎΠΌ простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°Π΄Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основныС дСйствия, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°, добавлСния тСкста ΠΈ Ρ‚.Π΄. Π”Π°Π»Π΅Π΅ β€” Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап. Π—Π΄Π΅ΡΡŒ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ дСйствия окончания пСрСтаскивания:

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, синиС Π±Π»ΠΎΠΊΠΈ послС пСрСтаскивания ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° исходноС мСсто. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΎΡ‡Π΅Π½ΡŒ просто. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ создано большоС количСство Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Drag&Drop, ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Π² использовании, Ρ‡Π΅ΠΌ описанный ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Однако скорСС всСго Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ всС Ρ‡Π°Ρ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ связка HTML5 & JavaScript.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ΅Ρ‚ΠΎΠ΄ создания DRAG and DROP эффСкта

ΠŸΡ€ΠΈΠ΄Ρ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΊ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DRAG and DROP столкнулся с ΠΎΡ‡Π΅Π½ΡŒ тяТСлым Π΅Ρ‘ описаниСм (Π­Ρ‚ΠΎ ΠΌΠΎΠ΅ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΡˆΡƒ с Π½ΠΈΠΌ Π½Π΅ ΡΠΎΠ³Π»Π°ΡˆΠ°Ρ‚ΡŒΡΡ, Π° ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° этот вопрос с ΠΌΠ½ΠΎΠ³ΠΈΡ… сторон). И Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ статСй, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ Π΄Π·Π΅Π½.

Π‘Ρ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π΄Π²ΡƒΡ… частСй:

ΠŸΠ°Ρ€Π°Π³Ρ€Π°Ρ„ β„–1 ΠœΠ΅Ρ‚ΠΎΠ΄ создания DRAG and DROP эффСкта

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°, посмотрим повСрхностно. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбя Π² Ρ€ΠΎΠ»ΠΈ Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Для Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° это «Ну взял, Π½Ρƒ пСрСнСс. Π“ΠΎΡ‚ΠΎΠ²ΠΎ!Β», Π° для программиста β€œΠŸΠΎΠ΄ΠΎΡˆΠ΅Π» ΠΊ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ΅, наклонился, взял ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ, поднял ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ, ΠΏΡ€ΠΎΡˆΠ΅Π» N шагов, наклонился, отпустил ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ.”. Π― это ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ всС Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΏΠΎ шагам ΠΈ Π²Ρ‹ станСтС Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ истинС.

Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² создания Π΄Π°Π½Π½ΠΎΠ³ΠΎ эффСкта нСсколько ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎ всСх. Π― Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΡ‡ΠΈΡ‚Π°ΡŽ самым ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ.

ΠŸΡ€ΠΈ создании DRAG and DROP ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ draggable=’true’.

,
На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сам процСсс, Π° послС ΠΌΡ‹ Π΅Π³ΠΎ распространим Π½Π° всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠœΡ‹ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² JS ΠΈ ΠΊΠ°ΠΊ Π²Π°ΠΌ извСстно, Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ события, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ свои ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ события для создания DRAG and DROP:

dragstart β€” происходит, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ элСмСнт.
drag β€” происходит, ΠΊΠΎΠ³Π΄Π° элСмСнт пСрСтаскиваСтся.
dragend β€” происходит, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» пСрСтаскиваниС элСмСнта.
dragenter β€” происходит, ΠΊΠΎΠ³Π΄Π° пСрСтаскиваСмый элСмСнт ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
dragleave β€” происходит, ΠΊΠΎΠ³Π΄Π° пСрСтаскиваСмый элСмСнт ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
dragover β€” происходит, ΠΊΠΎΠ³Π΄Π° пСрСтаскиваСмый элСмСнт находится Π½Π°Π΄ Ρ†Π΅Π»ΡŒΡŽ.
drop β€” происходит, ΠΊΠΎΠ³Π΄Π° пСрСтаскиваСмый элСмСнт ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ваТная информация! Бобытия дСлятся Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹. Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ элСмСнта (Ρ‚ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ ΠΌΡ‹ пСрСтаскиваСм): dragstart, Drag, Dragend. Для ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ элСмСнта (ΠΊΡƒΠ΄Π° пСрСтаскиваСм): Dragenter, Dragleave, Dragover, Drop. И эти события Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π±Π΅Π· Π΄Ρ€ΡƒΠ³Π°.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ: НСобходимо ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΌΡ‹ отпустили ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ. Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ части.

БСсспорно, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сдСлан Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅, Π½ΠΎ ΠΎΠ½ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ событиями Π½ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ссли Π² строчкС d1.addEventListener(‘dragstart’,function() <Π²Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ‘dragstart’ Π½Π° любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ событиС, сами смоТСтС с Π½ΠΈΠΌ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ интСрСсныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊ, ΠΏΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ ΠΈ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ показалось Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΈ интСрСсным ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² коммСнтариях, Ρ‚Π°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ сам смоТСт это ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ.

ΠŸΠ°Ρ€Π°Π³Ρ€Π°Ρ„ β„–2. НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ DROP Π² DRAG and DROP

Когда Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ всС события, Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ drop Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π­Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄Π΅Π»Π°ΡŽΡ‚ Π°Ρ‚Π°Ρ‚Π° Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» «И это всё… Π₯ΡƒΡ…, Π΅Ρ€ΡƒΠ½Π΄Π°Β».

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Ρ„Π°ΠΊΡ‚, Π±Π΅Π· Π½Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΡ‹ΡˆΡŒ: Drag’n’Drop

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π½Π° этой страницС устарСл, поэтому скрыт ΠΈΠ· оглавлСния сайта.

Π‘ΠΎΠ»Π΅Π΅ новая информация ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ находится Π½Π° страницС https://learn.javascript.ru/mouse-drag-and-drop.

Drag’n’Drop – это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΡ‹ΡˆΡŒΡŽ элСмСнт ΠΈ пСрСнСсти Π΅Π³ΠΎ. Π’ своё врСмя это Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Π² области интСрфСйсов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ большоС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»ΠΈΠΊΠΎΠ². И, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΎΠ½ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ внСшний Π²ΠΈΠ΄ интСрфСйса: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· Drag’n’Drop, Π² ΠΈΠ½ΠΎΠΌ случаС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ Ρ‚.ΠΏ.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΎΡ‚ HTML5 Drag’n’Drop

Π’ соврСмСнном стандартС HTML5 Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Drag’n’Drop ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… событий.

Π­Ρ‚ΠΈ события ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всСми соврСмСнными Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΈ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ свои интСрСсныС особСнности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ JS ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ доступ ΠΊ Π΅Π³ΠΎ содСрТимому. Они Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния.

Но Π² ΠΏΠ»Π°Π½Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Drag’n’Drop Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ сущСствСнныС ограничСния. НапримСр, нСльзя ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСнос Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈΒ» ΠΈΠ»ΠΈ Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈΒ». Π’Π°ΠΊΠΆΠ΅ нСльзя ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ пСрСнос Π²Π½ΡƒΡ‚Ρ€ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсныС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ встроСнными событиями Π½Π΅Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ здСсь ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Drag’n’Drop ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ событий ΠΌΡ‹ΡˆΠΈ.

РассматриваСмыС ΠΏΡ€ΠΈΡ‘ΠΌΡ‹, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Drag’n’Drop, Π½ΠΎ ΠΈ для Π»ΡŽΠ±Ρ‹Ρ… интСрфСйсных взаимодСйствий Π²ΠΈΠ΄Π° Β«Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ – ΠΏΠΎΡ‚ΡΠ½ΡƒΡ‚ΡŒ – ΠΎΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΒ».

Алгоритм Drag’n’Drop

Основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Drag’n’Drop выглядит Ρ‚Π°ΠΊ:

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ эти шаги Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ для пСрСноса мяча:

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΌΡ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ Π½Π΅Ρ‡Ρ‚ΠΎ странноС. ΠŸΡ€ΠΈ Π½Π°Ρ‡Π°Π»Π΅ пСрСноса мяч «раздваиваСтся» ΠΈ пСрСносится Π½Π΅ сам мяч, Π° Π΅Π³ΠΎ Β«ΠΊΠ»ΠΎΠ½Β».

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² дСйствии Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΡ„Ρ€Π΅ΠΉΠΌΠ°:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ пСрСнСсти мяч ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ описанноС, довольно-Ρ‚Π°ΠΊΠΈ странноС, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Drag’n’Drop, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски запускаСтся ΠΈ вступаСт Π² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с нашим. Π­Ρ‚ΠΎ происходит ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов.

Π•Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всё Π±ΡƒΠ΄Π΅Ρ‚ Π² порядкС.

Π’ дСйствии (Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΡ„Ρ€Π΅ΠΉΠΌΠ°):

Однако, Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΡ‹ΡˆΡŒ Π²ΠΎ врСмя пСрСноса Π½Π΅ всСгда Π½Π°Π΄ мячом.

Вспомним, событиС mousemove Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ…ΠΎΡ‚ΡŒ ΠΈ часто, Π½ΠΎ Π½Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля. БыстроС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ курсора Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ mousemove ΡƒΠΆΠ΅ Π½Π΅ Π½Π°Π΄ мячом, Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² дальнСм ΠΊΠΎΠ½Ρ†Π΅ страницы.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ мяч позиционируСтся Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΏΠΎΠ΄ курсором ΠΌΡ‹ΡˆΠΈ:

Но Π½Π΅ идСально. Π’ частности, Π² самом Π½Π°Ρ‡Π°Π»Π΅ пСрСноса, особСнно Ссли мячик «взят» Π·Π° ΠΊΡ€Π°ΠΉ – ΠΎΠ½ Ρ€Π΅Π·ΠΊΠΎ Β«ΠΏΡ€Ρ‹Π³Π°Π΅Ρ‚Β» Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ ΠΏΠΎΠ΄ курсор ΠΌΡ‹ΡˆΠΈ.

Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ пСрСноса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ сдвиг курсора ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ элСмСнта сохранялся.

Π“Π΄Π΅ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΈ, Π·Π° Ρ‚Ρƒ Β«Ρ‡Π°ΡΡ‚ΡŒ элСмСнта» ΠΈ пСрСносим:

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ значСния shiftX/shiftY Π»Π΅Π³ΠΊΠΎ: достаточно Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ курсора pageX/pageY Π»Π΅Π²ΡƒΡŽ-Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ мячика, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getCoords.

ΠŸΡ€ΠΈ Drag’n’Drop ΠΌΡ‹ Π²Π΅Π·Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ подходят Π² большСм количСствС ситуаций.

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈ пСрСносС мяча ΠΌΡ‹ располагаСм Π΅Π³ΠΎ left/top с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ сдвига, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Drag’n’Drop API: ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, Π΄Ρ€ΡƒΠ·ΡŒΡ!

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ рассмотрим встроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пСрСтаскивания элСмСнтов Π½Π° страницС.

БправСдливости Ρ€Π°Π΄ΠΈ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ событий ΠΌΡ‹ΡˆΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Илья ΠšΠ°Π½Ρ‚ΠΎΡ€ Π² своСм ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ срСдства, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Для стилизации Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Bootstrap.

Если Π²Π°ΠΌ это интСрСсно, ΠΏΡ€ΠΎΡˆΡƒ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° ΠΌΠ½ΠΎΠΉ.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°:

Π—Π΄Π΅ΡΡŒ Ρƒ нас имССтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΏΠΎΠ»Π΅ΠΌ для Π²Π²ΠΎΠ΄Π° тСкста Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ для Π΅Π΅ добавлСния Π² список (input-group), Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°-ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ (list-group) для всСх Π·Π°Π΄Π°Ρ‡ (todos-list), Π·Π°Π΄Π°Ρ‡ Π² процСссС выполнСния (in-progress-list) ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (completed-list). Π§Ρ‚ΠΎ касаСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Β«dataΒ», Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для раздСлСния стилизации ΠΈ управлСния: классы β€” для стилизации, data β€” для управлСния.

ΠšΠ»Π°ΡΡΡ‹ Β«in-progressΒ» ΠΈ Β«completedΒ» слуТат ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ нахоТдСния Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅. Класс Β«dropΒ» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ попадания Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π·ΠΎΠ½Ρƒ для «бросания».

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ скрипту, ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС события пСрСтаскивания, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· основных.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ поиск элСмСнтов ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий:

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠ»ΠΈΠΊΠ°:

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ нСпосрСдствСнно ΠΊ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Π½ΠΈΡŽ.

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π² Π·ΠΎΠ½Ρƒ для «бросаниС» ΠΈ ΡƒΡ…ΠΎΠ΄ ΠΈΠ· Π½Π΅Π΅ посрСдством добавлСния/удалСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса:

Π”Π°Π»Π΅Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΠΎ пСрСтаскивания:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ элСмСнт, находящийся ΠΏΠΎΠ΄ пСрСтаскиваСмым. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π² спискС, Ρ‚.Π΅. ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ мСстами. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ события Β«mousemoveΒ» для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«elementFromPoint(x, y)Β». ΠŸΡ€Π΅Π»Π΅ΡΡ‚ΡŒ рассматриваСмого интСрфСйса состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для опрСдСлСния Β«Π½ΠΈΠ·Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎΒ» элСмСнта Π½Π°ΠΌ достаточно ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ событиС Β«dragoverΒ»:

НаконСц, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ событиС Β«dropΒ» («бросаниС»):

Π’ΠΎΡ‚ ΠΈ всС. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. Π—Π°Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ возмоТности ΠΏΠΎ добавлСнию интСрактивности Π½Π° страницу. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ всСм ΡΡ‡Π°ΡΡ‚ΡŒΠ΅.

НадСюсь, Π²Ρ‹ нашли для сСбя Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ дня.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ΅Ρ€Π΅ΠΎΡΠΌΡ‹ΡΠ»Π΅Π½ΠΈΠ΅ drag&drop

Π‘Π΅Ρ€Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ всСм Π΄Π°Π²Π½ΠΎ извСстноС ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ красивым

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай
ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию react-beautiful-dnd

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Π΄Π²ΡƒΡ…- ΠΈ трСхступСчатому ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π² EDISON Software Development Centre.

Π’Π°ΠΊΡ‚ΠΈΠ»ΡŒΠ½ΠΎΠ΅ чувство

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΄ΠΈΠ·Π°ΠΉΠ½Π° react-beautiful-dnd Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² осязании (physicality): хочСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Ρ‹Π»ΠΎ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ физичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ контрастными ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ β€” поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стандартныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ использования этой Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΈ посмотрим ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

CΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° элСмСнтов ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ сортировки Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… элСмСнтов. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСтаскивания самый стандартный, ΠΈ ΠΎΠ½ послуТит Π½Π°ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ принятоС постоянноС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈ пСрСтаскивании элСмСнтов Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнта ΠΎΠ½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ появляСтся Π² своСй Π½ΠΎΠ²ΠΎΠΉ исходной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Π‘ΠΎΠ»Π΅Π΅ СстСствСнноС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.

Для Π±ΠΎΠ»Π΅Π΅ СстСствСнного пСрСтаскивания ΠΌΡ‹ Π°Π½ΠΈΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ элСмСнтов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² процСссС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сам эффСкт пСрСтаскивания. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π°Π½ΠΈΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ элСмСнта Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π·Π°Ρ‚Π΅ΠΌ оказывался Π½Π° своСй Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Ни Π² ΠΊΠΎΠ΅ΠΌ случаС элСмСнт Π½Π΅ пСрСмСщаСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΊΡƒΠ΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Π—Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ

Π’ΠΏΠΎΠ»Π½Π΅ СстСствСнно для дСйствий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСмСщСния Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

ДСйствиС, основанноС Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт пСрСмСстится Π½Π° свою Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ происходит, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ вычислСния основаны Π½Π° исходной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

ДСйствиС, основанноС Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π΅ притяТСния.

Π’ react-beautiful-dnd дСйствия пСрСтаскиваСмых элСмСнтов основаны Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π΅ притяТСния β€” нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Π΅Ρ€Π΅Ρ‚ элСмСнт. К дСйствиям пСрСтаскиваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ Π³ΠΈΡ€ΡŒ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π°ΠΆΠ΅ с ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Ρ‹ΠΌΠΈ элСмСнтами ΠΏΡ€ΠΈ СстСствСнном пСрСтаскивании:

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ функция пСрСтаскивания ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² дСйствиС ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΡ‹ΡˆΡŒΡŽ ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСнсора. react-beautiful-dnd ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ пСрСтаскивания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ лишь ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅Ρ‰Π΅ ΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π±Ρ‹Π» с Π½Π΅ΠΉ Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ.

Π£Π²Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, провСряСм, ΠΊΠ°ΠΊ сочСтания клавиш Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со стандартными взаимодСйствиями ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ осущСствляСт пСрСтаскиваниС ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ элСмСнта, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ. Π’ΠΎ врСмя процСсса пСрСтаскивания ΠΌΡ‹ пСрСопрСдСляСм ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ горячиС клавиши Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ продуманная анимация

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π²Π»Π΅Ρ‡ΡŒΡΡ Π½Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ настроСны Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ баланс ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ интСрактивности.

React-beautiful-dnd усСрдно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠ² отсутствия интСрактивности Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ интСрфСйс, Π° Π½Π΅ ΠΆΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ° закончится анимация, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ смоТСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ взаимодСйствиС с интСрфСйсом.

Когда Π²Ρ‹ отпускаСтС пСрСтаскиваСмый элСмСнт, Π΅Π³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ основано Π½Π° Ρ„ΠΈΠ·ΠΈΠΊΠ΅(спасибо react-motion ). Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° элСмСнт ΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΎΠ½ каТСтся Π±ΠΎΠ»Π΅Π΅ вСсомым ΠΈ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΌ.

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ уходят с ΠΏΡƒΡ‚ΠΈ пСрСтаскиваСмого элСмСнта, Π΄Π΅Π»Π°ΡŽΡ‚ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS-ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π° Π½Π΅ Ρ„ΠΈΠ·ΠΈΠΊΠΈ. Π­Ρ‚ΠΎ позволяСт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ GPU ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ двиТСния. CSS animation curve Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ этот процСсс Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

Из Ρ‡Π΅Π³ΠΎ ΠΎΠ½Π° состоит:

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Animation curve, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ пСрСмСщСния.

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

НСаккуратныС ΠΊΠ»ΠΈΠΊΠΈ ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° наТатия клавиш.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ Π½Π° элСмСнтС, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ пСрСтаскивал Π΅Π³ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° элСмСнт, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ слСгка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ курсор β€” случайный ΠΊΠ»ΠΈΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ пСрСтаскиваниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚Π²Π΅Π» ΠΌΡ‹ΡˆΡŒ Π²Π½ΠΈΠ· Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ расстояниС β€” большСС, Ρ‡Π΅ΠΌ Ссли Π±Ρ‹ ΠΎΠ½ осущСствил случайноС Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅. Если ΠΏΠΎΡ€ΠΎΠ³ пСрСтаскивания Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½, Ρ‚ΠΎ дСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ. Если ΠΏΠΎΡ€ΠΎΠ³ пСрСтаскивания ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½, Ρ‚ΠΎ дСйствиС Π±ΡƒΠ΄Π΅Ρ‚ классифицировано ΠΊΠ°ΠΊ пСрСтаскиваниС, ΠΈ стандартноС дСйствиС наТатия Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.

Π­Ρ‚ΠΎ позволяСт потрСбитСлям Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ элСмСнтами ΠΊΠ°ΠΊ Ρ‚Π΅Π³ΠΈ привязки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ стандартными Ρ‚Π΅Π³Π°ΠΌΠΈ привязки, Ρ‚Π°ΠΊ ΠΈ ΡƒΠ·Π½Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ элСмСнтами.

React-beautiful-dnd ΡƒΠΏΠΎΡ€Π½ΠΎ трудится, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ влияСт Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². НапримСр, Ссли Π²Ρ‹ добавляСтС Ρ‚Π΅Π³ΠΈ привязки, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ смоТСт ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ нСпосрСдствСнно ΠΊ привязкС, Π° Π½Π΅ ΠΊ элСмСнту, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ осущСствляли привязку. ΠœΡ‹ добавляСм tab-index ΠΊ опрСдСляСмым элСмСнтам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ добавляСтС Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ элСмСнтом, (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, div ), Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ всС Ρ€Π°Π²Π½ΠΎ смоТСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своСй ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΡƒΠ΄Π°-Π»ΠΈΠ±ΠΎ.

НС для всСх

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π”ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ, чистого ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ API. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π½Π΅Π³ΠΎ ΠΈ Ρ‚Π΅ΠΌ самым ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля Π½Π°Π΄ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ пользования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ пСрСтаскивания. Он основан ΠΊΠ°ΠΊ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… многочислСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅ использования ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ пСрСтаскивания. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² описаниС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ API β€” Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ.

React-beautiful-dnd спроСктирована Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ β€” это Ρ‡Π°ΡΡ‚ΡŒ Π΅Ρ‘ Π”ΠΠš. Она основана Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… исслСдованиях ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь ΠΈ здСсь. React-beautiful-dnd ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для выполнСния минимального количСства исполнСний, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

МинимальноС количСство ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

МинимальноС количСство Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

React-beautiful-dnd ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… стратСгий тСстирования, Π² Ρ‚ΠΎΠΌ числС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС, тСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… аспСктов систСмы способствуСт ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ Π΅Π΅ качСства ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° это Π½Π΅ гарантия качСства, это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Π­Ρ‚Π° кодовая Π±Π°Π·Π° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ содСрТит 95% покрытия ΠΊΠΎΠ΄Π°.

Π­Ρ‚Π° кодовая Π±Π°Π·Π° Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° с flowtype для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ согласованности ΠΈ устойчивости ΠΊΠΎΠ΄Π°. Она Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ API.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ спасибо всСм Π² Atlassian, ΠΊΡ‚ΠΎ сдСлал это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° react-beautiful-dnd Π±Ρ‹Π»Π° нСвСроятной! Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ спасибо. ΠœΡ‹ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ-Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drag drop Ρ‚Π°Ρ‰ΠΈ ΠΈ бросай

Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² контСкстС доски объявлСний.

Π‘Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ запросов Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сСнсора (это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ‹ react-beautiful-dnd Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π½Ρ‹Ρ… устройствах). Π­Ρ‚ΠΎ всСгда Π±Ρ‹Π»ΠΎ Π² ΠΏΠ»Π°Π½Π°Ρ… ΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ скоро Π½Π°Ρ‡Π½Π΅ΠΌ Π½Π°Π΄ этим Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ! Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΅Ρ‰Π΅ совсСм новая.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *