Перетягування будь-чого на HTML-сторінці

Часто перед веб-майстром постає завдання реалізувати перетягування (drag) елементів в межах сторінки.

З використанням фреймворку MooTools це завдання стає простим і впоратися з ним можна лише в декілька рядків JavaScript-коду.

Вже готову реалізацію перетягування елементів можна знайти в короткій, але дуже корисній статті «Ultra small code to drag everything in HTML pages».

Перетягування за допомогою MooTools

Давайте подивимося, як виглядає HTML-код цього прикладу:

<div id="draggables">
	<div>Тут трошки тексту...</div>
	<div>Деякий текст тут...</div>
	<div>... і ще текст ...</div>
</div>

Як бачимо, він дуже простий.

Ви повинні додати основний DIV-елемент з ID, наприклад, «draggables», а в ньому покласти декілька DIV’ів.

Таким чином всі елементи, що містяться всередині DIV’а з ID рівним «draggables» будуть перетягуватися.

Тепер глянемо на JavaScript-код, який дозволить здійснювати перетягування. Перш за все слід підключити MooTools в тілі тегу <head>:

<script type="text/javascript" src="mootools.svn.js"></script>

А після цього скопіюйте і вставте цей простий код:

<script type="text/javascript">
  window.addEvent('domready', function(){
    $('#draggables div').each(function(drag){
        new Drag.Move(drag);
    });
  });
</script>

Просто, чи не так? Таким чином, коли ви натиснете на DIV елемент, який міститься всередині DIV’а з ID рівним «draggables», то зможете його переміщувати в межах вікна браузера.

В прикладі з блоґу http://woork.blogspot.com/ використано DIV-елементи для демонстрації перетягування елементів, але ви можете також взяти будь-який інший тег (P, H1, UL, LI, …).

Єдине, що вам потрібно змінити в HTML-коді DIV на той тег, який ви оберете. Ось, тут

$('#draggables div').each(function(drag)

Ви також можете задавати CSS-стилі для елементів, що перетягуються

<div id="draggables">
	<div class="drag">Тут трошки тексту...</div>
	<div class="drag">Деякий текст тут...</div>
	<div class="drag">... і ще текст ...</div>
</div>

і CSS код може виглядати якось так:

.drag {
	border:solid 6px #DEDEDE;
	background:#FFF;
	width:200px;
	height:150px;
}

Категорія: Для початку. Теґи: , . Ви можете слідкувати за коментуванням цієї статті за допомогою RSS 2.0. Ви можете залишити коментар, або надіслати трекбек з вашого сайту.

Залишити коментар

XHTML: Ви можете використовувати ці теґи: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>