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

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

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

Вот мой код в Dart:

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-элемента. Это тоже не сработало.

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

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

4b9b3361

Ответ 1

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

Ответ 2

Для Polymer 1.0/2.0

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

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

Ответ 3

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

Ответ 4

"Полимерные жесты" могут быть использованы для создания полимерного компонента перетаскиваемого.

  • Inherit Polymer.GestureEventListeners
  • Добавить прослушиватель событий трека:

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

Подробный образец уже представлен на странице "События жестов полимера" .