2010-12-10 59 views
0

所以我有一個畫廊,我需要讓主圖像淡入,然後一旦點擊就淡入淡出。主圖像類設置爲一次點擊「激活」:Jquery Fade在一個活躍的類

var gal = { 
init : function() { 
    if (!document.getElementById || !document.createElement || !document.appendChild) return false; 
    if (document.getElementById('gallery')) document.getElementById('gallery').id = 'jgal'; 
    var li = document.getElementById('jgal').getElementsByTagName('li'); 
    li[0].className = 'active'; 
    for (i=0; i<li.length; i++) { 
     li[i].style.backgroundImage = 'url(' + li[i].getElementsByTagName('img')[0].src + ')'; 
     li[i].title = li[i].getElementsByTagName('img')[0].alt; 
     gal.addEvent(li[i],'click',function() { 
      var im = document.getElementById('jgal').getElementsByTagName('li'); 
      for (j=0; j<im.length; j++) { 
      im[j].className = ''; 
      } 

      this.className = 'active'; 



    } 

我用盡這裏添加

this.fadeIn(「快」);

課後設置,但不工作。有任何想法嗎?

感謝

+3

您是否在使用jQuery?您正在使用所有原生DOM方法,所以我想知道這是否只是標記爲jQuery,或...? – 2010-12-10 11:49:38

+0

嗨,是的,我在頁面中使用Jquery。 – BobFlemming 2010-12-10 12:08:49

回答

1

使用此變通辦法解決:

$(本).hide(); $(this).fadeIn(「slow」); this.className ='active';

+0

我用$(this).fadeOut(「slow」); $(本).addClass( 「活動」);但大小和兩個三分。 – TomFirth 2016-02-07 16:38:59

0

只是拋出這個希望它有一點幫助。如果您在頁面中包含jQuery,請利用它(至少就可維護性而言),如下所示:

var gal = { 
    init : function() { 
    $('#gallery').attr('id', 'jgal').find('li').each(function() { 
     var $this = $(this), i = $this.find('img')[0]; 
     $this.css('backgroundImage', 'url(' + i.src + ')').attr('title', i.alt); 
    }).click(function() { 
     $(this).addClass('active').hide().fadeIn('slow') 
      .siblings().removeClass('active'); 
    }).first().click(); 
    }