Вывод изо в видимой области экрана
Реализовано появление увеличенной копии изо при наведении на него курсора мыши.
Стоит задача: показывать эту копию только в видимой области экрана.
Логика такая: берём текущие координаты курсора (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;
Для ширины всё работает изумительно, а вот с высотой не так...
При наведении курсор мыши дрожит и ничего не выводится... порой выводится, только новое окно уходит как за верхнюю, так и за нижнюю границы экрана...
Подскажите, где туплю???
|