|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2012, 16:30 | #1 |
Новичок
Джуниор
Регистрация: 09.11.2012
Сообщений: 1
|
JavaScript и расположение окна предварительного просмотра(QuickView)
Добрый день!
Моя задача расположить окно предварительного просмотра(QuickView, QW) рядом с курсором и заставить его менять положение в зависимости от позиции мышки в браузере. По умолчанию окно отображается под курсором, но если мышь расположена очень низко и QuickView не помещается, то оно отображается над курсором. В целом, код работает. Но возникают некоторые проблемы при прокручивании страницы. В частности, кода я прокручиваю вниз, то все в порядке и QW все время находится в положенном месте(рядом с курсом), но при прокручивании вверх эта функция работает только до тех пор, пока я не достигаю самого верха страницы - тогда окно отображается где-то в стороне(внизу). Возможно, что-то я делаю не так или не все учтено при построении кода. Может, кто-нибудь знающий укажет на недочет? Dummy code: Код HTML:
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;} function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;} if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; } else { document.onmousemove = UpdateCursorPosition; } function AssignPosition(d) { if(self.pageYOffset) { rX = self.pageXOffset; rY = self.pageYOffset; } else if(document.documentElement && document.documentElement.scrollTop) { rX = document.documentElement.scrollLeft; rY = document.documentElement.scrollTop; } else if(document.body && document.body.scrollTop) { rX = document.body.scrollLeft; rY = document.body.scrollTop; } if(document.documentElement.clientWidth || document.documentElement.clientHeight){ myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if(document.body.clientWidth || document.body.clientHeight){ myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } if(document.all) { cX += rX; cY += rY; } var divHeight = d.style.height.replace(/px/, ""); divHeight = parseInt(divHeight); if(cY>((myHeight-divHeight)+rY)) { cY = cY - divHeight; d.style.left = (cX+50) + "px"; d.style.top = (cY-10) + "px"; } else { d.style.left = (cX+50) + "px"; d.style.top = (cY-10) + "px"; } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Событие "открыто окно предварительного просмотра" | tae1980 | Microsoft Office Excel | 8 | 03.03.2019 14:56 |
верстка предварительного просмотра не обновляется (ДЛЕ 9.5) | MILLIONERR | WordPress и другие CMS | 0 | 20.02.2012 03:00 |
Как сделать неактивной кнопку печати в окне предварительного просмотра | PSZ | Microsoft Office Excel | 0 | 05.11.2010 15:29 |
Вывод текста на канву предварительного просмотра печати. | Moly | Общие вопросы Delphi | 0 | 29.09.2009 17:31 |
Окно предварительного просмотра | VladimirVB | Компоненты Delphi | 3 | 11.05.2009 08:42 |