Проблема с непрозрачностью в IE - PullRequest
0 голосов
/ 20 августа 2010

У меня есть простой href, который вызывает функцию javascript, которая скрывает div и показывает вместо него другой.Затем я использую JavaScript, чтобы добавить хороший эффект постепенного появления.Отлично работает в Firefox и Chrome.В IE мне пришлось использовать width: 100%, чтобы все заработало.И хотя сейчас он работает, он полностью разрушает мой тип шрифта.Вот код:

Javascript:

function switch() 
{


if(document.getElementById("div1").style.visibility == "visible")
 {
  document.getElementById("div1").style.visibility = "hidden";
  document.getElementById("div1").style.display = "none";
  document.getElementById("div2").style.visibility = "visible";
  document.getElementById("div2").style.display = "block";  
  initfade('div2');
 }
 else
 {
  document.getElementById("div2").style.visibility = "hidden";
  document.getElementById("div2").style.display = "none";
  document.getElementById("div1").style.visibility = "visible";
  document.getElementById("div1").style.display = "block";   
  initfade('div1');
 }
 }

function initfade(img) {

   imageId = img;
   image = document.getElementById(imageId);
   setOpacity(image, 0);
   image.style.visibility = 'visible';
   fadeIn(imageId,0);
 }
 function setOpacity(obj, opacity) {
   opacity = (opacity == 100)?99.999:opacity;

   // IE/Win
   obj.style.filter = "alpha(opacity="+opacity+")";

   // Safari<1.2, Konqueror
   obj.style.KHTMLOpacity = opacity/100;

   // Older Mozilla and Firefox
   obj.style.MozOpacity = opacity/100;

   // Safari 1.2, newer Firefox and Mozilla, CSS3
   obj.style.opacity = opacity/100;
  }

  function fadeIn(objId,opacity) {
     if (document.getElementById) {
        obj = document.getElementById(objId);
        if (opacity <= 100) {
            setOpacity(obj, opacity);
            opacity += 30;
            window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
         }
         if (opacity > 100) {
      setOpacity(obj, 100);
         }    
      }
   }

HTML:

<div id="div1" class="theStyle2_visible" style="visibility: visible;">
    <div id="normal" class="normal">
       <p>Example Text</p>
    </div>
</div>
<div id="div2" class="theStyle2" >
    <div id="normal" class="normal">
       <p>Example Text</p>
    </div>
</div>
<a id="switchlink" href="javascript:switch();">Switch</a>

CSS:

    .theStyle2 { 
 visibility: hidden;
 width: 100%;
 display: none;
 z-index: -1; 
     }
     .theStyle2_visible {
 width: 100%; 
     }
     #normal{
        font: 0.9em  arial;
        font-weight:400;
        line-height: 20px;
 text-align:justify;
     }

Я понятия не имею, что я делаю неправильно и как это исправить, или если это просто ошибка, но я пробовал миллион вещей, и, похоже, ничего не работает.Любая хорошая душа хочет мне помочь?пожалуйста!

спасибо.

РЕДАКТИРОВАТЬ: Прямая ссылка здесь: www.optimizer.pt/fade Если вы протестируете его на Firefox и IE, вы поймете, что я имею в виду.Понятия не имею, что происходит ...

1 Ответ

0 голосов
/ 20 августа 2010

Не уверен, в чем проблема, но когда вы говорите «рушит мой тип шрифта»: можете ли вы дать элементу, который становится блеклым, цвет фона? Это часто помогает.

...