2013-04-08 88 views
1

时,没有运气如何使这些选项卡的内容在单击选项卡时淡入?

这里选择我一直在试图让这些选项卡的内容,以淡入的标签

<div id="homepagetabsdiv"><ul id="homepagetabs"><li id="tab0" onclick="javascript:show_tab('0');">Main</li> 
<li id="tab1" title="Drag and drop this tab to re-arrange the order" onclick="javascript:show_tab('1');">managers</li> 
<li id="tab2" title="Drag and drop this tab to re-arrange the order" onclick="javascript:show_tab('2');">Standings</li> 
</ul></div> 
<div id="tabcontent0" class="homepagetabcontent">CONTENT</div> 
<div id="tabcontent1" class="homepagetabcontent">CONTENT</div> 
<div id="tabcontent2" class="homepagetabcontent">CONTENT</div> 

编辑添加showtab功能

function show_tab (tab_id) { 
    var done = false; 
    var counter = 0; 
    while (! done) { 
     var this_tab_content = document.getElementById("tabcontent" + counter); 
     var this_tab = document.getElementById("tab" + counter); 
     if (! this_tab_content) { 
     done = true; 
     } else { 
     if (counter == tab_id) { 
      this_tab_content.style.display = ''; 
      this_tab.className = "currenttab"; 
     } else { 
      this_tab_content.style.display = 'none'; 
      this_tab.className = ""; 
     } 
     } 
     counter++; 
    } 
    location.hash = tab_id; 
} 
+1

有你阅读和使用过的尝试'.fadeIn()'根据API? http://api.jquery.com/fadeIn/ – Mal 2013-04-08 00:50:15

+0

小心分享您的Javascript代码?特别是'show_tab'? – Ian 2013-04-08 00:53:21

+0

编辑追加,TY伊恩 – user2250423 2013-04-08 01:15:50

回答

2

不确保您的show_tab的功能是什么,但它可能会需要像这样:

function show_tab(tab_num) { 
    $(".homepagetabcontent").fadeOut(400, function() { 
     $("#tabcontent" + tab_num).fadeIn(400); 
    }); 
} 

而且,它可能更容易在HTML事件绑定悄悄地代替。所以不是所有的东西onclick="javascript:show_tab('1');",你可以使用这个HTML格式:

<li id="tab1" title="Drag and drop this tab to re-arrange the order" data-tab-num="1">managers</li> 

并使用此Javascript:如果您决定保留内嵌onclick="javascript:show_tab('1');"东西

$(document).ready(function() { 
    $("#homepagetabs").on("click", "li", function() { 
     var $this = $(this); 
     var tab_num = $this.attr("data-tab-num"); 
     show_tab(tab_num); 
    }); 
}); 

,你不需要javascript:部分。

UPDATE:

我意识到我没有正确处理衰落。这里的show_tab功能我会使用和事件处理:

function show_tab(tab_num) { 
    var tabcontents = $(".homepagetabcontent"); 
    var count = 0; 
    tabcontents.fadeOut(400, function() { 
     if (++count === tabcontents.length) { 
      $("#tabcontent" + tab_num).fadeIn(400); 
     } 
    }); 
} 

$(document).ready(function() { 
    $("#homepagetabs").on("click", "li", function() { 
     var $this = $(this); 
     $("#homepagetabs").find("li").filter(".currenttab").removeClass("currenttab"); 
     $this.addClass("currenttab"); 
     var tab_num = $this.attr("data-tab-num"); 
     show_tab(tab_num); 
    }); 
}); 

而且还在,HTML结构我会使用:

<div id="homepagetabsdiv"> 
    <ul id="homepagetabs"> 
     <li id="tab0" title="Drag and drop this tab to re-arrange the order" data-tab-num="0">Main</li> 
     <li id="tab1" title="Drag and drop this tab to re-arrange the order" data-tab-num="1">managers</li> 
     <li id="tab2" title="Drag and drop this tab to re-arrange the order" data-tab-num="2">Standings</li> 
    </ul> 
</div> 

<div id="tabcontents"> 
    <div id="tabcontent0" class="homepagetabcontent">CONTENT0</div> 
    <div id="tabcontent1" class="homepagetabcontent">CONTENT1</div> 
    <div id="tabcontent2" class="homepagetabcontent">CONTENT2</div> 
</div> 

DEMO:http://jsfiddle.net/SLBjv/5/

显然你是欢迎向您需要的show_tab函数添加其他任何内容,但如果您使用的是jQuery,那么您可以随时随地使用它。这意味着使用它来选择/查找元素,更改class es,以及更改样式等等。

+0

我编辑与showtabs功能的问题,伊恩·TY的代码,我安装了它的工作原理有点,但非常不连贯上/淡出淡入淡出,所以我认为它需要编辑的 – user2250423 2013-04-08 01:15:27

+0

@ user2250423对不起,我没有按照我的意思去做所有事情。我更新了我的答案(添加到最后)并包含一个示例。让我知道如果你需要更多的帮助,但据我可以告诉大家,它现在衰落的正确工作,你想:) – Ian 2013-04-08 05:06:42

+0

伊恩,工程巨大,但2个问题,一旦我添加的新功能。内容中的我的DDSlider停止工作,并且我的li.currenttab样式在当前选项卡上不起作用。网站是这里http://www21.myfantasyleague.com/2013/home/69528 – user2250423 2013-04-08 16:17:21

相关问题