DRAG рдФрд░ DROP рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐

рдкрд╣рд▓реА рдмрд╛рд░ рдбреАрдЖрд░рдПрдЬреА рдФрд░ рдбреАрдЖрд░рдУрдкреА рдореЗрдВ рдЖрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЖрдпрд╛ (рдпрд╣ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд░рд╛рдп рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдЙрд╕рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡рд╣ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдкрдврд╝реЗрдВ рдФрд░ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рдЕрдкрдиреЗ рдХреЛрдгреЛрдВ рд╕реЗ рджреЗрдЦреЗрдВ)ред рдФрд░ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрддреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдХреБрдЫ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдЬрд╝реЗрди рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд▓реЗрдЦ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрдВрдЧреЗ:

  • DRAG рдФрд░ DROP рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ред
  • DRAG рдФрд░ DROP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрдБрдЯрд╛рдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдЬреНрдЮрд╛рди рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЕрдиреБрдЪреНрдЫреЗрдж рд╕рдВрдЦреНрдпрд╛ 1 DRAG рдФрд░ DROP рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐


рдЧрд╣рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╕рддрд╣реА рддреМрд░ рдкрд░ рджреЗрдЦреЗрдВред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд▓реЛрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдмреЙрдХреНрд╕ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП, "рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдпрд╛, рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред рд╣реЛ рдЧрдпрд╛! тАЭ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП,тАЬ рдореИрдВ рдмреЙрдХреНрд╕ рдХреЗ рдкрд╛рд╕ рдЧрдпрд╛, рдореБрдбрд╝рд╛, рдмреЙрдХреНрд╕ рдХреЛ рдЙрдард╛рдпрд╛, рдмреЙрдХреНрд╕ рдХреЛ рдЙрдард╛рдпрд╛, рдПрди рд╕реНрдЯреЗрдк рдЪрд▓рд╛, рдореБрдбрд╝рд╛, рдмреЙрдХреНрд╕ рд╕реЗ рдЬрд╛рдиреЗ рджрд┐рдпрд╛ред тАЭред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЦреЛ рджреЗрдВ рдФрд░ рдЖрдк рд╕рдЪреНрдЪрд╛рдИ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рдореИрдВ рдЙрд╕ рдПрдХ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдКрдВрдЧрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдорд╛рдирддрд╛ рд╣реВрдВред

DRAG рдФрд░ DROP рдмрдирд╛рддреЗ рд╕рдордп, рдкрд╣рд▓рд╛ рдХрджрдо рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо draggable = 'true' рдкрд░ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗред

<html> <head> <style> .ddd { display:block; float:left; padding:10px; border:1px solid #000; } </style> </head> <body> <div id='d1' class='ddd' draggable='true'>Pervii 1</div> </body> </html> 

ред
рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдореИрдВ рдЦреБрдж рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реЗ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдлреИрд▓рд╛ рджреЗрдВрдЧреЗред рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ JS рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП DRAG рдФрд░ DROP рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдирд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВ:

рдбреНрд░реИрдЧрд╕реНрдЯрд╛рд░реНрдЯ - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рдЦреАрдВрдЪрдиреЗ рд▓рдЧрддрд╛ рд╣реИред
рдЦреАрдВрдЪреЗрдВ - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛред
рдбреНрд░реИрдЧреЗрдВрдб - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЖрдЗрдЯрдо рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдбреНрд░реИрдЧреЗрдВрдЯрд░ - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдЖрдЗрдЯрдо рд▓рдХреНрд╖реНрдп рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИред
рдбреНрд░реИрдЧрд▓реАрд╡ - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЦреАрдВрдЪреА рдЧрдИ рд╡рд╕реНрддреБ рд▓рдХреНрд╖реНрдп рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИред
рдбреНрд░реИрдЧрдУрд╡рд░ - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЦреАрдВрдЪреА рдЧрдИ рд╡рд╕реНрддреБ рд▓рдХреНрд╖реНрдп рд╕реЗ рдКрдкрд░ рд╣реЛрддреА рд╣реИред
рдбреНрд░реЙрдк - рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдЗрдЯрдо рдХреЛ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓рдХреНрд╖реНрдп рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИред

рдЕрдм рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА! рдШрдЯрдирд╛рдУрдВ рдХреЛ рджреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП (рдЬрд┐рд╕реЗ рд╣рдо рдЦреАрдВрдЪ рд░рд╣реЗ рд╣реИрдВ): рдбреНрд░реИрдЧрд╕реНрдЯрд╛рд░реНрдЯ, рдбреНрд░реИрдЧ, рдбреНрд░реИрдЧреЗрдВрдбред рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП (рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕реЗ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ): рдбреНрд░реИрдЧреЗрдВрдЯрд░, рдбреНрд░реИрдЧрд▓реАрд╡, рдбреНрд░реИрдЧрдУрд╡рд░, рдбреНрд░реЙрдкред рдФрд░ рдпреЗ рдШрдЯрдирд╛рдПрдБ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдорд╛рдЙрд╕ рдмрдЯрди рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рднрд╛рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

 <html> <head> <style> .ddd { display:block; float:left; padding:10px; border:1px solid #000; } </style> </head> <body> <div id='d1' class='ddd' draggable='true'>Pervii 1</div> <div id='d2' class='ddd'>Vtoroy 2</div> <div id='d3' class='ddd'>Tretii 3</div> <div id='d4' class='ddd'>Chetverty 4</div> <div id='d5' class='ddd'>Pyatii 5</div> <script> var d1 = document.getElementById('d1'); var startCursorX; var startCursorY; var startX; var startY; d1.addEventListener('dragstart',function() { startCursorX = event.pageX;//     X startCursorY = event.pageY;//     Y startX = d1.style.marginLeft.replace('px','')*1; //      PX startY = d1.style.marginTop.replace('px','')*1; }); d1.addEventListener('dragend',function() { d1.style.position = 'absolute';//CSS   "" :) d1.style.marginLeft = startX + event.pageX-startCursorX; //  +   -      d1.style.marginTop = startY + event.pageY-startCursorY; //       ,     }); </script> </body> </html> 

рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдЙрджрд╛рд╣рд░рдг рдШреБрдЯрдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рд╛рдкреНрдд рд╡рд╕реНрддреБ рдХреА рд╡реИрдХрд▓реНрдкрд┐рдХрддрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рд▓рд╛рдЗрди d1.addventventListener ('рдбреНрд░реИрдЧрд╕реНрдЯрд╛рд░реНрдЯ', рдлрдВрдХреНрд╢рди () { рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдИрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде 'рдбреНрд░реИрдЧрд╕реНрдЯрд╛рд░реНрдЯ' рдХреА рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред , рдХреБрдЫ рдРрд╕рд╛ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдХреЛрдИ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрддрд╛ рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд░рд┐рдЪреНрдЫреЗрдж рд╕рдВрдЦреНрдпрд╛ реиред DROP DRAG рдФрд░ DROP рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ


рдЬрдм рдЖрдк рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдбреНрд░реЙрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣реИрдВ, рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд░рдорд╛рдгреБ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ "рдФрд░ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рд╣реИ ... рд╣реБрд╣, рдмрдХрд╡рд╛рд╕ред"

рдЦреИрд░, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдбреНрд░реЙрдк рдЗрд╡реЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЙрд╕реА рддрддреНрд╡ рдкрд░ рдПрдХ рдИрд╡реЗрдВрдЯ рдХреЛ рд▓рдЯрдХрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛

 d2.addEventListener('dragover',function() { event.preventDefault(); }); 

рдЗрд╕реЗ рдПрдХ рддрдереНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ, рдпрд╣ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

Source: https://habr.com/ru/post/hi463463/


All Articles