Показать сообщение отдельно
  #3 (permalink)  
Старый 24.07.2009, 09:25
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

Есть такой фрагмент кода для реализации всплывающей подсказки (всплывает рядом с курсором мыши со сдвигом на offsetx и offsety). Отсюда взял: _http://lixlpixel.org/javascript-tooltips/
var offsetx = 30;
var offsety = 30;

function getmouseposition(e)
{
    if(document.getElementById)
    {
        var iebody=(document.compatMode && 
        	document.compatMode != 'BackCompat') ? 
        		document.documentElement : document.body;
        pagex = (isapple == 1 ? 0:(ie5)?iebody.scrollLeft:window.pageXOffset);
        pagey = (isapple == 1 ? 0:(ie5)?iebody.scrollTop:window.pageYOffset);
        mousex = (ie5)?event.x:(ns6)?clientX = e.clientX:false;
        mousey = (ie5)?event.y:(ns6)?clientY = e.clientY:false;
        var lixlpixel_tooltip = document.getElementById('tooltip');
        lixlpixel_tooltip.style.left = (mousex+pagex+offsetx) + 'px'; // проблема здесь!!
        lixlpixel_tooltip.style.top = (mousex+pagey+offsety) + 'px'; // проблема здесь!!
    }
}


В Opera9 и FireFox3 и в IE7 - все работает нормально.
В IE8 - при прокручивании колесика мыши вниз - подсказка пропорционально уезжает вниз от курсора, обратно кручу колесико - подсказка обратно к курсору едет.

Далее, убрал pagex и pagey, то есть вот так сделал:

lixlpixel_tooltip.style.left = (mousex+offsetx) + 'px'; // проблема здесь!!
lixlpixel_tooltip.style.top = (mousex+offsety) + 'px'; // проблема здесь!!


И тогда получается с точностью до наоборот: в IE8 прекрасно работает, а в Opera9, FireFox3 и в IE7 - при прокручивании колесика - та же песня: подсказка ездит вверх-вниз (расстояние по Х от курсора меняется) ...

Нельзя ли как-то модифицировать код, чтоб работало и в Opera9 и FireFox3 и в IE7 и IE8 ??
Спасибо за внимание.

Последний раз редактировалось glutton, 24.07.2009 в 10:05.
Ответить с цитированием