Internet Explorer и onMouseOver / onMouseOut - PullRequest
0 голосов
/ 10 июня 2010

Я пытался найти похожий вопрос здесь, но не смог найти его, вот он:

У меня есть этот HTML (игнорируйте «+ что угодно + @», это в файле codebehind, так что я помещаю некоторые переменные, которые я получаю оттуда):

<div id='ReferenceContainer"+UniqueID+@"' style='background-color:"+BackcolourOFF+@"; width:"+CompWidth+@"; height:"+CompHeight+@";'>
    <div id='Reference"+UniqueID+@"' style='width:"+CompWidth+@"; height:"+CompHeight+@"; '>
        <div id='RefTextContainer"+UniqueID+@"' style='float:left; width:"+CompWidth+@"; height:"+CompHeight+@"; ' >
            <div id='RefTitleCon' style='margin-top:"+RefTitleMargin+@"px; color:"+RefTitleColor+@"; z-index:-1;' ><p><b>"+RefTitle+@"</b></p>    </div>  
            <div id='RefTextCon'><p>"+RefText+@"</p></div>
        </div>
        <div id='RefPicContainer"+UniqueID+@"' style='float:right;'>
            <img id='RefImg"+UniqueID+@"first' class='first' name='RefImg"+UniqueID+@"' src=" + StartImg + @" style='position:absolute;' ></img>
            <img id='RefImg"+UniqueID+@"second' class='second' name='RefImg"+UniqueID+@"' src=" + AltImg + @" style='display:none;' ></img>
        </div>
        </div>
    <div id='ScriptContainer"+UniqueID+@"' style='width:"+CompWidth+@"; height:"+CompHeight+@";  position:relative; top:-"+CompHeight+@"px; left:0px;' onMouseOver='ChangeBackcolourON"+UniqueID+@"()' onMouseOut='ChangeBackcolourOFF"+UniqueID+@"()'></div>
</div>

Теперь в Firefox все работает просто отлично. Div "ScriptContainer" находится перед всем этим, и когда мышь входит или выходит из функций, работают точно так, как они должны. Но IE8 помещает текст перед всем, и тогда функции не работают так, как я бы хотел. «ChangeBackcolourOFF» вызывается каждый раз, когда мышь вводит текст, который находится перед всем, а «ChangeBackcolourON» вызывается каждый раз, когда мышь входит в «Scriptcontainer» из текста.

Так что мне нужно либо выяснить, как заставить текст помещаться за «Scriptcontainer», либо какие-то другие решения.

Я ценю ваши ответы

1 Ответ

0 голосов
/ 10 июня 2010

Хорошо, я на самом деле понял это методом проб и ошибок.Поэтому я подумал, что поделюсь.

Очевидно, что если «Scriptcontainer» не имеет цвета фона, то IE помещает текст впереди, но если «Scriptcontainer» имеет цвет фона, то текст помещается позади.

Итак, я дал «Scriptcontainer» цвет фона и сделал его прозрачным с помощью фильтра: alpha (opacity = 0);непрозрачность: 0;вот так:

<div id='ScriptContainer"+UniqueID+@"' style='width:"+CompWidth+@"; height:"+CompHeight+@"; position:relative; background-color:#ffffff; filter:alpha(opacity = 0); opacity: 0;' onMouseOver='ChangeBackcolourON"+UniqueID+@"()' onMouseOut='ChangeBackcolourOFF"+UniqueID+@"()'>

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

...