使用Jquery和Tab内容移动制作动画
Animate using Jquery with Tab content movement
我是JQuery的新手,我一直在寻求一些指导。我使用选项卡式内容构建了一个页面,但遇到了一些小问题。我使用的动画以完全相反的方式工作。那么我想做什么呢?当页面启动时,第一个选项卡处于活动状态,并显示内容。当您单击另一个选项卡时,内容会从左侧移入(它隐藏在内容之外)。但由于某种原因,我似乎无法使用条件来分隔选项卡的行为。我不得不试着把标签当作一个数组来处理,这样就可以避免第一个标签。这是我正在处理的部分。
jQuery(document).ready(function(){
jQuery('.tabs .tab-links a').on('click', function(e){
var currentAttrValue = jQuery(this).attr('href');
if($('li:gt(0)')){
$('.tabs ' + currentAttrValue).animate({opacity:1, paddingLeft:'30%'}, 400);
$('.tabs ' + currentAttrValue).fadeIn(400).siblings().hide();
}else if($('li:lt(1)')){
$('.tabs ' + currentAttrValue).fadeIn(400).siblings().hide();
}
jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
e.preventDefault();
});
});
.tab-content {
background-color: #e5e5e5;
color: #666;
min-height: 150px;
overflow: auto;
}
.tab-links{
float:left;
}
.tab-links:after {
display:block;
clear:both;
content:'';
}
.tab-links li {
list-style-type: none;
background-color: #303030;
text-transform: uppercase;
letter-spacing: 0.09em;
margin-left: -25%;
}
.tab-links li a {
color: #f2f2f2;
display: block;
text-decoration: none;
}
.tab-links a:hover {
background:#a7cce5;
text-decoration:none;
}
.tab-links li.active, .tab-links li.hover {
background-color: #e5e5e5;
}
.tab-links li.active a, .tab-links li a:hover {
color: #666;
}
#tab2, #tab3, #tab4 { display:none; }
.tab-content p {
margin: 20px;
text-indent: -40%;
}
.tab-content.active{
display: block;
text-indent: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tabs">
<ul class="tab-links">
<li class="active"><a href="#tab1">Tab1</a></li>
<li><a href="#tab2">Tab2</a></li>
<li><a href="#tab3">Tab3</a></li>
<li><a href="#tab4">Tab4</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab active">
<p>sdaksjdalkjflksjfkjsaf</p>
</div>
<div id="tab2" class="tab">
<p>weiwoqoiehwqwhdjsakdnma</p>
</div>
<div id="tab3" class="tab">
<p>ryqwurioqwiijdipqjdqpdjo</p>
</div>
<div id="tab4" class="tab">
<p>asdlksjdksjdlaskjdkasjdlkaj</p>
</div>
</div>
</div>
感谢所有的帮助,我似乎无法度过这一部分。
要通过设置填充的动画从左边开始设置新选项卡内容的动画,您需要将初始填充设置为0(或小于30%的其他值)。要设置不透明度的动画,需要将不透明度设置为0。我对css做了一些轻微的修改,默认情况下显示选项卡1的内容,并将其他选项卡初始化为动画前的状态。没有必要将选项卡1与其他选项卡区别对待。
jQuery(document).ready(function(){
jQuery('.tabs .tab-links a').on('click', function(e){
var currentAttrValue = jQuery(this).attr('href');
$('.tabs ' + currentAttrValue).show();
$('.tabs ' + currentAttrValue).animate({opacity:1, paddingLeft:'30%'}, 400);
$('.tabs ' + currentAttrValue).siblings().css({opacity:0, paddingLeft:'0%'}).hide();
jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
e.preventDefault();
});
});
.tab-content {
background-color: #e5e5e5;
color: #666;
min-height: 150px;
overflow: auto;
}
.tab-links{
float:left;
}
.tab-links:after {
display:block;
clear:both;
content:'';
}
.tab-links li {
list-style-type: none;
background-color: #303030;
text-transform: uppercase;
letter-spacing: 0.09em;
margin-left: -25%;
}
.tab-links li a {
color: #f2f2f2;
display: block;
text-decoration: none;
}
.tab-links a:hover {
background:#a7cce5;
text-decoration:none;
}
.tab-links li.active, .tab-links li.hover {
background-color: #e5e5e5;
}
.tab-links li.active a, .tab-links li a:hover {
color: #666;
}
#tab1 {padding-left: 30%;}
#tab2, #tab3, #tab4 {
display:none;
opacity: 0;
padding-left: 0%;
}
.tab-content p {
margin: 20px;
text-indent: -40%;
}
.tab-content.active{
display: block;
text-indent: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tabs">
<ul class="tab-links">
<li class="active"><a href="#tab1">Tab1</a></li>
<li><a href="#tab2">Tab2</a></li>
<li><a href="#tab3">Tab3</a></li>
<li><a href="#tab4">Tab4</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab active">
<p>tab1 content</p>
</div>
<div id="tab2" class="tab">
<p>tab2 content</p>
</div>
<div id="tab3" class="tab">
<p>tab3 content</p>
</div>
<div id="tab4" class="tab">
<p>tab4 content</p>
</div>
</div>
</div>
相关文章:
- css动画和jquery.load()在移动设备上断断续续
- 使用Jquery和Tab内容移动制作动画
- 使大图像移动的jQuery动画更流畅
- 尝试在画布中对形状进行动画处理时,它会显示,但不移动
- 使用 JavaScript 动画通过箭头键移动矩形
- 如何使用一个移动的三角形/矩形创建画布动画
- GWD移动动画;t停止
- 如何在JS中随机化backgroundPosition而不使用鼠标移动来制作万花筒的动画
- 设置动画/移动putImageData放置的画布图像
- 用于移动动画的JavaScript库
- CSS中的文本移动动画
- jquery animate()-如何只移动/动画页面的一部分
- 如何移动/动画DIV背景图像平滑垂直
- 使用原型继承模式的随机移动动画
- Kineticjs:画布中图像的随机移动动画
- Angular.js移动动画
- 我如何使我的文本移动动画在画布上更平滑(少锯齿运动)
- 尝试在javascript中使用easeljs库移动/动画容器
- 高图情节线可以有移动动画
- 用Javascript移动/动画Div