【发布时间】:2017-02-07 22:17:50
【问题描述】:
我正在尝试在我的 div .panels 的 width 属性上添加动画。我已经用 transition-property, 和 .animate() 在 css 中尝试过,但它不起作用。 我注意到 calc() 不适用于 jQuery animate...
第三个面板应该总是有其他两个宽度的减法,所以它可以浮动在右边。
ex. width: 'calc(100% - ' + (panelWidth1 + panelWidth2) + 'px)'
所以有什么建议让它发挥作用吗? 谢谢!
HMTL
<div class="actions">
<button id="MinPanel1">Minimize Panel 1</button>
<button id="MinPanel2">Minimize Panel 2</button>
</div>
<div class="panels">
<div class="panel1"></div>
<div class="panel2"></div>
<div class="panel3"></div>
</div>
JS
$( document ).ready(function() {
$('#MinPanel1').click(function() {
var toggleWidth = $(".panel1").width() == 225 ? "57px" : "225px";
$('.panel1').css({
width: toggleWidth
});
adjustPanel();
});
$('#MinPanel2').click(function() {
var toggleWidth = $(".panel2").width() == 330 ? "66px" : "330px";
$('.panel2').css({
width: toggleWidth
});
adjustPanel();
});
adjustPanel = function() {
var panelWidth1 = $('.panel1').width();
var panelWidth2 = $('.panel2').width();
var panelWidthTotal = panelWidth1 + panelWidth2;
$('.panel3').css({
width: '-webkit-calc(100% - ' + panelWidthTotal + 'px)',
width: '-moz-calc(100% - ' + panelWidthTotal + 'px)',
width: 'calc(100% - ' + panelWidthTotal + 'px)'
});
}
});
CSS
[...]
.panel1, .panel2, .panel3{
height: 100%;
float: left;
/*-moz-transition-property: width;
-o-transition-property: width;
-webkit-transition-property: width;
transition-property: width;
-moz-transition-duration: 300ms;
-o-transition-duration: 300ms;
-webkit-transition-duration: 300ms;
transition-duration: 300ms;*/
}
[...]
演示:JS FIDDLE
编辑的演示结果:JS FIDDLE
【问题讨论】:
-
你知道在你的小提琴中你没有使用jquery吗?
-
他确实有jquery,但是作为外部资源
标签: javascript jquery css jquery-animate css-animations