Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В Фаерфоксе состояние курсора меняется самопроизвольно (https://javascript.ru/forum/misc/12408-v-faerfokse-sostoyanie-kursora-menyaetsya-samoproizvolno.html)

Юрий Никольский 16.10.2010 05:06

В Фаерфоксе состояние курсора меняется самопроизвольно
 
http://www.pcshop.ru/cgi-bin/loader.pl?seek=rapier

Сделал так, что при наведении курсора на картинку "инфо" курсор становится поинтером и становится видимым див, в который подкачивается картинка. После перемещения курсора с "инфо" див становится невидимым - none.
Это работает в Хроме и Эксплорере. В Фаерфоксе после появления картинки через долю секунды курсор перестает быть поинтером и происходит событие onmouseout, что приводит невидимости дива.
В чем дело?


print "<div id=thumbnail style=\" position:absolute;border:1px solid black;top:200;left:300;display:none;background-color:white\"><img src=/pix/photos/150/$index_150.jpg></div>";

print "<img onmouseout=\"notShowTN()\" onmouseover=\"showTN($index, '$alttn', this)\" src=$pix_path/control/$style/folder_i.gif width=$i_width height=$i_height border=0 alt=\"$alt\">";

function showTN( index, txt, el ) {
   var r = getAbsolutePos(el);
   document.getElementById('thumbnail').style.top = r.y - 75;
   document.getElementById('thumbnail').innerHTML = '<img src=/pix/photos/150/' + index + '_150.jpg border=1><br>' + txt;
   document.getElementById('thumbnail').style.display = "block";
}
function notShowTN() {
   document.getElementById('thumbnail').style.display = "none";
}

function getAbsolutePos(el) {
   var r = { x: el.offsetLeft, y: el.offsetTop };
   if (el.offsetParent) {
      var tmp = getAbsolutePos(el.offsetParent);
      r.x += tmp.x;
      r.y += tmp.y;
   }
   return r;
}

monolithed 16.10.2010 12:12

Я так понял вам нужно что-то типа этого?:

<div id="text">text</div>
<div id="info"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /></div>

<style type="text/css">
#text, #info {background: #DD2900;color: #FFF;text-align: center;width: 336px;height: 20px;}
#info {cursor: pointer; display: none;}
</style>

<script type="text/javascript">
window.onload = function(){
    var text = document.getElementById('text');
    var info = document.getElementById('info');

    text.onmouseover = function(){
         info.style.display = 'block';
    };

    info.onmouseout = function(){
         this.style.display = 'none';
    };
};
</script>


Часовой пояс GMT +3, время: 13:02.