Как сделать полимерный элемент перетаскиваемым

Я пытаюсь включить перетаскивание HTML5 пользовательского полимерного элемента, но это не работает. Без полимера можно просто добавить атрибут draggable.

Вот мой код в Дарте:

my_component.html

<polymer-element name="my-component">
  <template>
    <style>
      @host {
        :scope {
          display: block;
        }
      }
      div {
        background-color: red;
        width: 200px;
        height: 200px;
      }
    </style>
    <div>
      Drag me
    </div>
  </template>
  <script type="application/dart" src="my_component.dart"></script>
</polymer-element>

my_component.dart

import 'package:polymer/polymer.dart';

@CustomTag('my-component')
class MyComponent extends PolymerElement {
  MyComponent.created() : super.created();
}

test.html

<!DOCTYPE html>

<html>
  <head>
    <link rel="import" href="my_component.html">

    <script type="application/dart">import 'package:polymer/init.dart';</script>
    <script src="packages/browser/dart.js"></script>
  </head>
  <body>
    <my-component draggable="true"></my-component>
  </body>
</html>

Я также попытался расшириться непосредственно из HTML-элемента. Это тоже не сработало.

Есть идеи, как сделать полимерный элемент перетаскиваемым?

Изменить: для этого есть отчет об ошибке.


person Marco Jakob    schedule 05.11.2013    source источник
comment
edu.makery.ch/projects/dart-html5-drag-and -дроп   -  person Nathaniel Johnson    schedule 07.11.2013
comment
Как описывает Дон Олмстед здесь, это работает. правильно в Polymer.js: jsbin.com/ejihim/1/edit   -  person Marco Jakob    schedule 10.12.2013


Ответы (4)


Я знаю, что это довольно устарело, но я оставляю это здесь для тех, кто может искать. В Polymer теперь есть основной элемент для поддержки перетаскивания: https://github.com/Polymer/core-drag-drop. Существует файл demo.html, чтобы показать вам, как его использовать.

person rlasch    schedule 31.05.2014
comment
Спасибо за подсказку. Я просто надеюсь, что они исправят ошибку, из-за которой узлы теневого дома не работают должным образом при перетаскивании: см. эта ошибка хрома. Я бы очень хотел перетаскивать полимеры с помощью Dart! - person Marco Jakob; 31.05.2014
comment
Это также устарело, странно, как быстро меняются технологии... Элементы с префиксом Core не будут работать для Polymer 1.0 или 2.0. См. sortablejs, который поддерживает перетаскивание на основе полимеров. - person AP.; 28.10.2016

Для полимера 1.0/2.0

Большинство ответов здесь пытаются ответить на OP для Polymer v0.5 [устаревшее]. Элементы с префиксом Core не будут работать для Polymer 1.0 или 2.0.

См. sortablejs, который поддерживает перетаскивание на основе полимеров.

person AP.    schedule 28.10.2016

чтобы сделать мои полимерные элементы перетаскиваемыми, я использовал библиотеку JS Draggabilly, в моем случае полимерные компоненты также были в сетке , поэтому я использовал его в сочетании с Packery.

person Glenn Sonna    schedule 12.11.2013
comment
Я ищу решение в Dart, если это возможно. - person Marco Jakob; 20.11.2013

События жестов полимера можно использовать для создания полимерного компонента < strong>перетаскиваемый.

  1. Наследовать Polymer.GestureEventListeners
  2. Добавить прослушиватель событий отслеживания:

<div id="dragme" on-track="handleTrack"></div>

Подробный пример уже представлен на странице Polymer Gesture Events.

person burak    schedule 20.12.2017