jQuery Animate() 切换而不隐藏元素
jquery animate() toggle without hiding the element
有没有办法使用 animate() 函数切换单个 CSS 属性而不隐藏它?像这样的东西;
$(".block").animate({ 'border-width': 'toggle' }, 1000);
我不能使用 toggleClass()、addClass() 或 removeClass()。这样做的原因是它对动画元素的大小有不需要的影响(请参阅 JSFiddle)。
你可以在这里找到一个JSFiddle。
我能想到的是这个;
if(parseInt($(".block").css('border-width'))) {
$(".block").animate({ 'border-width': '0'});
}
else {
$(".block").animate({ 'border-width': '100px'});
}
..或者通过向元素添加一个类来类似的东西。但我宁愿不使用 if 语句。我想知道这在一行代码中是否可行。感觉应该是。
尝试在CSS中使用它:
.block1,
.block2 {
display: inline-block;
vertical-align: top;
color: white;
height: 100%;
width: 50%;
transition: all, 1s;
}
.no-border-top {
border-top-width: 0;
}
然后只需切换无边框顶级类,您可以在此处看到它
您可以使用变量来定义切换效果:
var currentBorderW = 0;
$('.block1').on('click', function(){
var nextBorderW = parseInt($(this).css('border-width'));
$(this).animate({ 'border-width': currentBorderW + 'px' }, 1000);
currentBorderW = nextBorderW;
});
这是工作jsFiddle。
这能做到你想要的吗?
$('.block1').on('click', function(){
$(this).animate({ 'border-width': '-=100px' }, 1000);
});
$('.block2').on('click', function(){
$(this).children().first().show();
$(this).toggleClass('borderTop', 1000);
});
此代码示例的 JS 小提琴其他一切都是一样的:你的CSS,HTML等。 我只更改了属性border-width
的值为 -= 100px
。
我根据jQuery API文档使用了-=
运算符:
动画属性也可以是相对的。如果为值提供前导 += 或 -= 字符序列,则通过从属性的当前值中增加或减去给定数字来计算目标值。
编辑:要使其再次滑回,请参阅JSFiddle上的此示例
(function(){
var clickCount=0;
$('.block1').click(function(){
if (clickCount%2==0) {
$(this).animate({ 'border-width': '-=100px' }, 1000);
}
else {
$(this).animate({ 'border-width': '+=100px' }, 1000);
}
clickCount++;
});
})();
$('.block2').on('click', function(){
$(this).children().first().show();
$(this).toggleClass('borderTop', 1000);
});
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 随时隐藏元素
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 隐藏元素直到加载完成(ng斗篷不是我需要的)
- 在具有类的元素中隐藏元素
- javascript()onclick隐藏元素-dos'我不在firefox工作
- JQueryHide()在按钮中使用元素时不会隐藏元素
- 使用Javascript取消隐藏元素
- 如果鼠标离开父对象,则隐藏元素
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 基于事件在循环中隐藏元素
- 渐进式增强-不使用CSS隐藏元素
- 隐藏元素后更新滚动条
- jQuery没有隐藏元素
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- 如何使用javascript在区域外单击时隐藏元素
- 如何在加载网页时隐藏元素
- JS:隐藏元素上的事件侦听器
- HTML 显示/隐藏元素 JS 不起作用