15.10.2012, 00:05 | |||||
Drag and drop на HTML5Уже было много примеров, показывающих, что новая версия HTML, HTML5, вбирает в себя все больше из JS и Flash. Вот вам еще один пример - всем известный эффект "Drag and drop" выполняемый на HTML5. Полностью отказаться от скриптов, однако код стал меньше, по сравнению со схожими примерами. ДЕМО прилагается. Установка: 1. Создайте элемент <div>, в котором будут располагаться предметы для перетаскивания: Code <div id="boxA" ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" ondragover="return dragOver(event)"> <div id="drag" draggable="true" ondragstart="return dragStart(event)" ondragend="return dragEnd(event)">Тащи меня</div> <div id="drag2" draggable="true" ondragstart="return dragStart(event)" ondragend="return dragEnd(event)">Тащи меня </div> <div id="drag3" draggable="true" ondragstart="return dragStart(event)" ondragend="return dragEnd(event)">тащи меня</div> </div> элементы с id drag, drag2, drag3 можно перетаскивать. 2. Создайте зоны, куда можно вставиь эти элементы (у меня их 2): Code <div id="boxB" ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" ondragover="return dragOver(event)"> </div> <div id="boxC" ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" ondragover="return dragOver(event)"> </div> 3. Перед </head> поставьте код скрипта и стили (стили настройте под себя): Code <style type="text/css"> #boxA, #boxB, #boxC { float:left; width:165px; height:165px; padding:10px; margin:10px; } #boxA { background-color: #474747; } #boxB { background-color: #474747; } #boxC { background-color: #474747; } #drag, #drag2, #drag3 { width:30px; height:30px; padding:5px; margin:5px; -moz-user-select:none; } #drag { background-color: #e8e8e8;} #drag2 { background-color: orange;} #drag3 { background-color: purple; border:3px brown solid;} </style> <script type="text/javascript"> function dragStart(ev) { ev.dataTransfer.effectAllowed='move'; //ev.dataTransfer.dropEffect='move'; ev.dataTransfer.setData("Text", ev.target.getAttribute('id')); ev.dataTransfer.setDragImage(ev.target,0,0); return true; } function dragEnter(ev) { var idelt = ev.dataTransfer.getData("Text"); return true; } function dragOver(ev) { var idelt = ev.dataTransfer.getData("Text"); var id = ev.target.getAttribute('id'); if( (id =='boxB' || id =='boxA') && (idelt == 'drag' || idelt=='drag2')) return false; else if( id =='boxC' && idelt == 'drag3') return false; else return true; } function dragEnd(ev) { ev.dataTransfer.clearData("Text"); return true } function dragDrop(ev) { var idelt = ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(idelt)); ev.stopPropagation(); return false; } </script> Перевод на русский by sold93 специально для http://infoscript.ru Материал взят с сайта infoscript.ru
| |||||
Категория: Скрипты uCoz | Просмотров: 1380 | Добавил: sold93 | Рейтинг: 5.0/1 | | |||||
Теги: |
Всего комментариев: 7 | ||||||||||||
|
Кроме того, материал перепечатывали с сайта на сайт, ставили... файл можно найти на Вэбочке (название tables_tablichki_dli_foruma.js).