2014-10-09 16 views

Odpowiedz

13

Oto przykład praca: https://jsfiddle.net/pwt1cbjc/

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Drag Handle</title> 
    <style> 
     #draggable { 
      width: 100px; 
      height: 100px; 
      border: 1px solid black; 
     } 
     #handle { 
      width: 0; 
      height: 0; 
      border-right: 20px solid transparent; 
      border-top: 20px solid black; 
      cursor: move; 
     } 
    </style> 
</head> 
<body> 
    <h1>Drag Handle</h1> 

    <div id="draggable" draggable="true"> 
     <div id="handle"> 
     </div> 
    </div> 

    <script> 
     var draggable = document.getElementById('draggable'); 
     var handle = document.getElementById('handle'); 
     var target = false; 
     draggable.onmousedown = function(e) { 
      target = e.target; 
     }; 
     draggable.ondragstart = function(e) { 
      if (handle.contains(target)) { 
       e.dataTransfer.setData('text/plain', 'handle'); 
      } else { 
       e.preventDefault(); 
      } 
     }; 
    </script> 

</body> 
</html> 
+0

Wow dziękuję to jest cool, div jest nie przeniósł się jednak na spadek, możliwe jest dodać, że? Czy możliwe jest dodawanie animacji slajdów, gdy użytkownik się porusza? – Noitidart

+1

Nie spodziewałeś się, że nadal potrzebujesz odpowiedzi na to stare pytanie, haha! Przemknęło przez nie przez przypadek i postanowiłem odpowiedzieć. O upuszczeniu, spójrz na odpowiedź tutaj, aby uzyskać przykładowy kod: http://stackoverflow.com/questions/6230834/html5-drag-and-drop-anywhere-on-the-screen – SaphuA

+0

Poszedłem o to w inny sposób, było o wiele bardziej intensywne (na mousedown dodałem odbiornik mousemove, a na mousemove ustawiłem elment "left", "top" i podążałem za kursorem w miły animowany sposób), twoja droga jest bardzo przyjemna i czuję się bardziej wydajna, i chciałbym to zaadaptować. – Noitidart

Powiązane problemy