file-drop-behavior.html 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <link rel="import" href="file-selection-behavior.html">
  2. <script>
  3. 'use strict';
  4. window.Chat = window.Chat || {};
  5. Chat.FileDropBehaviorImpl = {
  6. attached: function() {
  7. var dropZone = this;
  8. dropZone.addEventListener('dragover', function(e) {
  9. e.stopPropagation();
  10. e.preventDefault();
  11. e.dataTransfer.dropEffect = 'copy';
  12. dropZone.style.transform = 'scale(1.2)';
  13. }, false);
  14. var dragEnd = function() {
  15. dropZone.style.transform = 'scale(1)';
  16. };
  17. dropZone.addEventListener('dragleave', dragEnd, false);
  18. dropZone.addEventListener('dragexit', dragEnd, false);
  19. dropZone.addEventListener('dragend', dragEnd, false);
  20. // Get file data on drop
  21. dropZone.addEventListener('drop', function(event) {
  22. event.stopPropagation();
  23. event.preventDefault();
  24. //call dragend
  25. dragEnd();
  26. // Get files
  27. var files = event.dataTransfer.files;
  28. // Notify Selection
  29. this.notifyFilesSelection(files);
  30. });
  31. }
  32. };
  33. Chat.FileDropBehavior = [Chat.FileDropBehaviorImpl, Chat.FileSelectionBehavior];
  34. </script>