| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Перемещение рисунка за пределы скроллбокса |
| Автор: quiz 21.6.2007, 16:05 |
| Задача - дать пользователю IE возможность перетаскивать каринки из набора в нужное ему место на странице. Все работает нормально (картинки просто загружены в ряд, при клике position делается абсолютным и объект перемещается за курсором), но когда картинок становится слишком много и появляются скроллбары - свойства obj.style.left и obj.style.top начинают распологать рисунок внутри этого окошка со скроллбаром и соответственно вытащить за пределы этого блока объект невозможно. Как позиционировать картинку относительно краев экрана, а не относительно краев блока с полосами прокрутки? Все картинки хранятся в блоке <DIV> со свойствами "width: 100px; height: 400px;overflow: scroll;" Спасибо! |
| Автор: ksnk 21.6.2007, 19:11 |
| Нужно склонировать (cloneNode) эту картинку и вставить ее клон непосредственно в body. таскать за мышкой уже именно его. |
| Автор: 12345c 22.6.2007, 16:15 |
| Они и без того будут таскаться по всему окну. Когда position:absolute, объект уже не принадлежит структуре, хотя формально он в том же диве структуры. obj.style.left и obj.style.top считаются при этом от body. Ошибка - в коде, например, не допускаются координаты больше размеров дива. Можно попробовать обойти проблему, просто переместив рисунок по дереву DOM. |
| Автор: SelenIT 22.6.2007, 16:31 |
| 12345c, странно, в FF у меня все так и есть (div начинает ограничивать "тягание" только при явном указании position: relative), а вот в IE само по себе указание overflow, отличного от visible, приводит к ограничению (и прокрутке, если значение scroll/auto)... |
| Автор: quiz 22.6.2007, 22:21 | ||
| 12345c, c кодом все окей. Видимо это особенность IE. Даже если сделать
то все-равно рисунок позиционируется от краев ДИВа, а не от body. P.S. А как переместить рисунок по дереву DOM? |