Показать сообщение отдельно
  #1 (permalink)  
Старый 16.10.2013, 15:08
Аватар для Dozentos
Аспирант
Отправить личное сообщение для Dozentos Посмотреть профиль Найти все сообщения от Dozentos
 
Регистрация: 08.10.2013
Сообщений: 47

Вывод изо в видимой области экрана
Реализовано появление увеличенной копии изо при наведении на него курсора мыши.
Стоит задача: показывать эту копию только в видимой области экрана.

Логика такая: берём текущие координаты курсора (e.pageX и e.pageY), прибавляем к ним значение ширины и высоты нового блока соответственно и делаем выводы:
Если новое значение меньше ширины (высоты) экрана выводим новый блок в позиции курсора;
Если больше - получаем координаты позиции курсора минус ширина (высота) нового блока и смотрим:
Если новая координата больше 0 - выводим в ней новый блок;
Если меньше - делаем её равной 0...

На практике реализовал так:
left_coor = (e.pageX+$('#preview').width())>$(window).width() ? e.pageX - $('#preview').width() : e.pageX;
top_coor = (e.pageY+$('#preview').height())>$(window).height( ) ? e.pageY - $('#preview').height() : e.pageY;
left_coor = left_coor < 0 ? 0 : left_coor;
top_coor = top_coor < 0 ? 0 : top_coor;

Для ширины всё работает изумительно, а вот с высотой не так...
При наведении курсор мыши дрожит и ничего не выводится... порой выводится, только новое окно уходит как за верхнюю, так и за нижнюю границы экрана...

Подскажите, где туплю???
Ответить с цитированием