具有自动切换功能的jQuery选项卡

时间:2014-05-15 12:32:39

标签: javascript jquery html css tabs

我不太了解javascript,但是由于google god而设法有一个标签区。

单击选项卡按钮时,将显示相应的内容。我想再增加一个功能如下。

  • 即使没有单击选项卡按钮,也要每隔5秒切换到下一个选项卡。
  • 如果当前活动标签是标签4并且已经过了5秒,请切换回标签1。

以下是我目前的代码。

/ *标签的CSS * /

.tabs { list-style: none; margin-top: 30px; }
.tabs li { display: inline; }
.tabs li a { min-width: 20%; color: black; float: left; display: block; padding: 1%; margin-left: 1%; margin-right: 1%; position: relative; text-decoration: none; text-align: center; border-top: 1px solid #333; border-bottom: 1px solid #333; }
.tabs li a:hover { font-weight: bold; background: #fff; border-top: 1px solid #333; border-bottom: 1px solid #333; }
.tabs li a:active { font-weight: bold; background: #fff; border-top: 1px solid #333; border-bottom: 1px solid #333; }

/ * HTML * /

<div id="tabs">
    <ul class="tabs" id="tabsnav">
        <li><a href="#tab-1" class="menu-internal">Tab 1</a></li>
        <li><a href="#tab-2" class="menu-internal">Tab 2</a></li>
        <li><a href="#tab-3" class="menu-internal">Tab 3</a></li>
        <li><a href="#tab-4" class="menu-internal">Tab 4</a></li>
    </ul>

    <div id="tab-1">
        Contents for tab 1
    </div>
    <div id="tab-2">
        Contents for tab 2 
    </div>
    <div id="tab-3">
        Contents for tab 3
    </div>
    <div id="tab-4">
        Contents for tab 4  
    </div>
</div>

/ * JAVA * /

<script>
jQuery(document).ready(function() {
    jQuery('#tabs > div').hide(); // hide all child divs
    jQuery('#tabs div:first').show(); // show first child div
    jQuery('#tabsnav li:first').addClass('active');

    jQuery('.menu-internal').click(function(){
    jQuery('#tabsnav li').removeClass('active');
    var currentTab = jQuery(this).attr('href');
    jQuery('#tabsnav li a[href="'+currentTab+'"]').parent().addClass('active');
    jQuery('#tabs > div').hide();
    jQuery(currentTab).show();
    return false;
    });
    // Create a bookmarkable tab link
    hash = window.location.hash;
    elements = jQuery('a[href="'+hash+'"]'); // look for tabs that match the hash
    if (elements.length === 0) { // if there aren't any, then
    jQuery("ul.tabs li:first").addClass("active").show(); // show the first tab
    } else { elements.click(); } // else, open the tab in the hash
});
</script> 

我想我需要在上面的脚本中添加更多代码,例如“5秒后转到下一个标签,然后返回标签4后的标签1”。但是,我不知道如何编程而且不知所措。

非常感谢专业人士的帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个

DEMO

这个就是你想要的。

将自己的CSS添加到其中

HTML:

 <div id="tabs">
<ul class="tabs" id="tabsnav">
    <li><a href="#tab-1" class="menu-internal">Tab 1</a></li>
    <li><a href="#tab-2" class="menu-internal">Tab 2</a></li>
    <li><a href="#tab-3" class="menu-internal">Tab 3</a></li>
    <li><a href="#tab-4" class="menu-internal">Tab 4</a></li>
</ul>

<div id="tab-1">
    Contents for tab 1
</div>
<div id="tab-2">
    Contents for tab 2 
</div>
<div id="tab-3">
    Contents for tab 3
</div>
<div id="tab-4">
    Contents for tab 4  
</div>
</div>

JAVASCRIPT:

jQuery(document).ready(function() {
jQuery('#tabs > div').hide(); // hide all child divs
jQuery('#tabs div:first').show(); // show first child div
jQuery('#tabsnav li:first').addClass('active');

jQuery('.menu-internal').click(function(){
jQuery('#tabsnav li').removeClass('active');
var currentTab = jQuery(this).attr('href');
jQuery('#tabsnav li a[href="'+currentTab+'"]').parent().addClass('active');
jQuery('#tabs > div').hide();
jQuery(currentTab).show();
return false;
});
// Create a bookmarkable tab link
hash = window.location.hash;
elements = jQuery('a[href="'+hash+'"]'); // look for tabs that match the hash
if (elements.length === 0) { // if there aren't any, then
jQuery("ul.tabs li:first").addClass("active").show(); // show the first tab
} else { elements.click(); } // else, open the tab in the hash
});

希望这有帮助