fat*_*sma 9 jquery tabs css-animations twitter-bootstrap twitter-bootstrap-3
我试图找出如何在两个Bootstrap 3选项卡之间左,右,上,下滑动.
我在网上搜索过,令人惊讶的是没有找到任何东西.
我发现的最接近的事情是这对引导github上.但是,它处理Bootstrap 2.0.2并且不再适用于Bootstrap 3.
有没有人知道如何在两个Bootstrap 3标签之间向左,向右,向下(任何或所有)滑动?
这是我正在使用的基本Bootstrap 3选项卡设置.
<ul class="nav nav-tabs">
<li class="active"><a href="#home" data-toggle="tab">Home</a></li>
<li><a href="#profile" data-toggle="tab">Profile</a></li>
<li><a href="#messages" data-toggle="tab">Messages</a></li>
<li><a href="#settings" data-toggle="tab">Settings</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="home"> home page content </div>
<div class="tab-pane" id="profile"> profile page content </div>
<div class="tab-pane" id="messages">message page content </div>
<div class="tab-pane" id="settings">settings content</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我通过以下几种方式之一激活我的标签.
$('#myTab a[href="#profile"]').tab('show') // Select tab by name
$('#myTab a:first').tab('show') // Select first tab
$('#myTab a:last').tab('show') // Select last tab
$('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
Run Code Online (Sandbox Code Playgroud)
当我进行"显示"时,我不想直接将旧标签"滑动"到左侧或右侧,同时在新标签中滑动.即使旧标签必须先完全滑动然后滑动,新标签也是可以接受的.但是,我更喜欢前者.
Har*_*jar 11
我在上一个项目中使用过更好的方法.它的Animate.css
JavaScript的
function leftSlide(tab){
$(tab).addClass('animated slideInLeft');
}
function rightSlide(tab){
$(tab).addClass('animated slideInRight');
}
$('li[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var url = new String(e.target);
var pieces = url.split('#');
var seq=$(this).children('a').attr('data-seq');
var tab=$(this).children('a').attr('href');
if (pieces[1] == "profile"){
leftSlide(tab);
}
})
Run Code Online (Sandbox Code Playgroud)
这是一个工作示例:
$('a[data-toggle="tab"]').on('hide.bs.tab', function (e) {
var $old_tab = $($(e.target).attr("href"));
var $new_tab = $($(e.relatedTarget).attr("href"));
if($new_tab.index() < $old_tab.index()){
$old_tab.css('position', 'relative').css("right", "0").show();
$old_tab.animate({"right":"-100%"}, 300, function () {
$old_tab.css("right", 0).removeAttr("style");
});
}
else {
$old_tab.css('position', 'relative').css("left", "0").show();
$old_tab.animate({"left":"-100%"}, 300, function () {
$old_tab.css("left", 0).removeAttr("style");
});
}
});
$('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
var $new_tab = $($(e.target).attr("href"));
var $old_tab = $($(e.relatedTarget).attr("href"));
if($new_tab.index() > $old_tab.index()){
$new_tab.css('position', 'relative').css("right", "-2500px");
$new_tab.animate({"right":"0"}, 500);
}
else {
$new_tab.css('position', 'relative').css("left", "-2500px");
$new_tab.animate({"left":"0"}, 500);
}
});
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
// your code on active tab shown
});Run Code Online (Sandbox Code Playgroud)
.tabs-animated {
overflow: hidden;
}
.tab-pane {
height: 250px;
width: 100%;
}
#tab1 {
background: #dddddd;
}
#tab2 {
background: #cccccc;
}
#tab3 {
background: #bbbbbb;
}
#tab4 {
background: #aaaaaa;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="tabs-animated">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tab1" aria-controls="tab1" role="tab" data-toggle="tab">Tab 1</a></li>
<li role="presentation"><a href="#tab2" aria-controls="tab2" role="tab" data-toggle="tab">Tab 2</a></li>
<li role="presentation"><a href="#tab3" aria-controls="tab3" role="tab" data-toggle="tab">Tab 3</a></li>
<li role="presentation"><a href="#tab4" aria-controls="tab4" role="tab" data-toggle="tab">Tab 4</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="tab1">Tab 1</div>
<div role="tabpanel" class="tab-pane fade" id="tab2">Tab 2</div>
<div role="tabpanel" class="tab-pane fade" id="tab3">Tab 3</div>
<div role="tabpanel" class="tab-pane fade" id="tab4">Tab 4</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我不确切知道这是否是您想要实现的,但如果是,您就有我在此处和下面使用的代码。
HTML:
<ul class="nav nav-tabs">
<li class="active"><a href="#home" data-toggle="tab">Home</a></li>
<li><a href="#profile" data-toggle="tab">Profile</a></li>
<li><a href="#messages" data-toggle="tab">Messages</a></li>
<li><a href="#settings" data-toggle="tab">Settings</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane fade active in" id="home">This is the home page content </div>
<div class="tab-pane fade" id="profile">This is the profile page content </div>
<div class="tab-pane fade" id="messages">This is the message page content </div>
<div class="tab-pane fade" id="settings">This is the settings content</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var url = new String(e.target);
var pieces = url.split('#');
if (pieces[1] == 'profile'){
$('#profile').css('left','-'+$(window).width()+'px');
var left = $('#profile').offset().left;
$("#profile").css({left:left}).animate({"left":"0px"}, "10");
}
if (pieces[1] == 'home'){
$('#home').css('right','-'+$(window).width()+'px');
var right = $('#home').offset().right;
$("#home").css({right:right}).animate({"right":"0px"}, "10");
}
if (pieces[1] == 'messages'){
$('#messages').css('top','-'+$(window).height()+'px');
var top = $('#messages').offset().top;
$("#messages").css({top:top}).animate({"top":"0px"}, "10");
}
if (pieces[1] == 'settings'){
$('#settings').css('bottom','-'+$(window).height()+'px');
var bottom = $('#settings').offset().bottom;
$("#settings").css({bottom:bottom}).animate({"bottom":"0px"}, "10");
}
})
Run Code Online (Sandbox Code Playgroud)
CSS
#home, #profile, #messages, #settings {
position: relative;
}
body {
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27530 次 |
| 最近记录: |