CSS宽度动画在点击选项卡时不工作
CSS width animation not working when clicking tabs
下面是我正在做的事情的精简版本。基本上我有一系列的标签,当点击,显示不同的图片。当我单击选项卡时,我想要动画溢出宽度,显示.show
内容。我不明白为什么东西没有动起来。仅供参考,我在Chrome中这样做。
<div class="container">
<div class="tabs">
<ul>
<li class="active" data-tab="1">Slide 1</li>
<li data-tab="2">Slide 2</li>
<li data-tab="3">Slide 3</li>
</ul>
</div>
<div class="tab-wrapper">
<div class="tab active" data-slide="1">
<div class="overflow">
<div class="show"></div>
</div>
</div>
<div class="tab" data-slide="2">
<div class="overflow">
<div class="show"></div>
</div>
</div>
<div class="tab" data-slide="3">
<div class="overflow">
<div class="show"></div>
</div>
</div>
</div>
</div><!--/.container-->
CSS: .container {
width:800px;
margin:0 auto;
background:#999999;
}
ul {
list-style-type:none;
display:table;
width:100%;
}
li {
display:table-cell;
color:#ffffff;
}
li.active {
color:blue;
}
.tab-wrapper {
width:800px;
height:300px;
border-top:solid 20px #ffffff;
}
.tab {
width:800px;
height:300px;
position:relative;
background:#666666;
display:none;
}
.tab.active {
display:block;
}
.overflow {
width:0%;
height:100%;
border:solid 3px red;
overflow:hidden;
position:relative;
-webkit-transition:width 1s ease;
}
.tab.active .overflow {
width:100%;
-webkit-transition:width 1s ease;
}
[data-slide="1"] .show {
width:800px;
height:200px;
top:50px;
position:absolute;
}
[data-slide="1"] .show { background:yellow; }
[data-slide="2"] .show { background:green; }
[data-slide="3"] .show { background:blue; }
JS:
$('.tabs li').click(function() {
var tab = $(this).data('tab');
var picked = $('.tab').data('slide', tab);
$('.tabs li.active').removeClass('active');
$('.tab.active').removeClass('active');
$(this).addClass('active');
$('.tab[data-slide=' + tab + ']').addClass('active');
});
CSS transition
/animation
将不工作在具有display: none;
属性的div。
如果div有一个具有display: none;
属性的父div,它也将不起作用。
相反,你可以尝试给.tab
s一个absolute
值的position
,并使0px
的初始宽度。然后设置800px
的宽度,当它有.active
类。在本例中,您需要将transition
应用于.tab
而不是.overflow
div。
。
尝试使用slideToggle():
$('.tab').click(
function(){
$(this).find('.overflow').slideToggle();
}
);
在css中为。overflow.
相关文章:
- 当我更改innerHtml时,引导选项卡事件不再工作
- 给出<选项>标记一个类?API调用不工作
- $localStorage array select with ng选项工作不正常
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- 如何使 html 选择选项在 Meteor 中工作
- 引导导航选项卡在小提琴中工作,但在使用 Chrome 打开时则不工作
- Anjularjss ng选项不工作选择
- JavaScript选项卡动态宽度.animate()只能工作一次
- Jquery选项卡容器不工作(未检测到,tabs()函数)
- JQuery隐藏选项没有'我在IE 11中不工作
- AngularStrap Select和ng选项don'使用动态数组不能很好地工作
- 数据插件选项筛选器不工作
- JQuery选项卡没有't工作-没有错误
- ng-选项与ng-init无法正常工作
- ngBlur 仅在选项卡外正常工作
- 流星的 restrictCreationByEmailDomain 选项如何工作
- 可排序的 Js 在带有选择/选项标签的 chrome 中不起作用,但与 ul/li 标签一起工作
- 工作流程/选项以扩展其他选项
- Xlxs.js的“l"单元格超链接对象选项工作
- 我在哪里错在这个php代码,而选择选项工作