Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Активация фонового изображения по OnMouseDown (https://javascript.ru/forum/misc/12981-aktivaciya-fonovogo-izobrazheniya-po-onmousedown.html)

Spellful 11.11.2010 12:39

Активация фонового изображения по OnMouseDown
 
Привет, друзья.

Делаю аналогичный d'n'd как на сайте funkit.ru

Сделал по это статье http://javascript.ru/ui/draganddrop.

Нужно доработать ее.
Есть два Image, один поверх другого. Собственно сверху прозрачная маска, которая не должна перетаскиваться и фоновое изображение, к которому применяется d'n'd. Соответственно, при нажатии мышкой цепляется маска.

Пробовал сделать через ActiveElement:
var dragObjects = document.getElementById('drg')
document.activeElement = dragObjects

Как оказалось - бесполезно :)

Делал с помощью передачи элемента непосредственно в функции скриптов, результат тоже безпонтовый :(

Хотелось бы узнать у экспертов - как передать нужный мне Image в OnMouseDown вместо того, который действительно находится под курсором в момент нажатия?

exec 11.11.2010 13:46

Удаляйте изображение (которое сверху), получайте элемент через document.elementFromPoint и добавляйте изображение вновь. Хотя, конечно, лучше заранее записать ссылку на нужный объект в переменную, и потом по ней к нему обращаться, проверяя координаты при mousedown (если они принадлежат опр. промежутку — начинать перенос).

Spellful 14.11.2010 16:44

Спасибо. Объект-то я получаю, но на него не срабатывает onmousedown.

var obj = document.getElementById('shadow');
obj.style.visibility = "hidden";
var mCur = mousePageXY(e);
document.elementFromPoint (mCur.x, mCur.y).onmousedown();
obj.style.visibility = "visible";


Пробовал через YUI -
YAHOO.util.UserAction.mousedown(element, { clientX: 100, clientY: 100 });

Не проканало (((

Может переписать dnd, что бы драг срабатывал по вызову? только не представляю как (((

dmitriymar 23.11.2010 21:11

мож я ошибаюсь. смысл в двух контейнерах друг на друге?тот же массив предзагрузки -в него внести изображения полноразмерные.
обращения к маленьким блокам как обычно к диву -точнее к привязанным к ним обработчикам. в функцию передавать параметр -номер изображения в массиве изображений. делать большой контейнер видимым позиционировать его и загрузить в него изображение. ну а скрывать его-при отпуске кнопки мыши. Зачем городить новое чтото. Синтаксис записи в контейнер изображений знаком? и обработки событий к контейнеру? если да -то ничего не мешает это реализовать.ну а отпуск кнопки-ко всем контейнерам обработчик этого события(кроме того в каком болльшое изображение-поскольку он с мышей гуляет)-и все вложить в общий контейнер для какого добавить обработчик отпускания кнопки мыши

Spellful 24.11.2010 13:38

Да. Спасибо))) Попробую сделать))

Я уже таки сделал как на фанките. Точнее использовал wz_drop. Правда курил его неделю, пока не врубился как DHTML работает.
Хотя не против найти другой способ.

zhivago 05.01.2011 13:30

mda


Часовой пояс GMT +3, время: 22:53.