ToggleClass animate jQuery?
ToggleClass animate jQuery?
我的网站上有一个部分,当用户点击我希望它展开时,我正在使用jQuery的toggleClass
...
expandable: function(e) {
e.preventDefault();
$(this).closest('article').toggleClass('expanded', 1000);
}
这工作正常,只是我想以某种方式对其进行动画处理。在 chrome 中,我的文章慢慢增长到新的大小,只有在 Firefox 中它"立即"调整大小而没有动画,有没有办法让这个动画?
jQuery UI 扩展了 jQuery 本机toggleClass
,以采用第二个可选参数:duration
toggleClass( class, [duration] )
文档 + 演示
.toggleClass()
不会动画化,你应该选择slideToggle()
或.animate()
方法。
你可以简单地使用CSS过渡,看这个小提琴
.on {
color:#fff;
transition:all 1s;
}
.off{
color:#000;
transition:all 1s;
}
我尝试使用 toggleClass 方法隐藏我网站上的一个项目(使用 visibility:hidden 而不是 display:none),并带有轻微的动画,但由于某种原因动画不起作用(可能是由于旧版本的 jQuery UI)。
该类已被正确删除和添加,但我添加的持续时间似乎没有任何区别 - 该项目只是添加或删除而没有任何效果。
因此,为了解决这个问题,我在 switchg 方法中使用了第二个类并应用了 CSS 过渡:
CSS:
.hidden{
visibility:hidden;
opacity: 0;
-moz-transition: opacity 1s, visibility 1.3s;
-webkit-transition: opacity 1s, visibility 1.3s;
-o-transition: opacity 1s, visibility 1.3s;
transition: opacity 1s, visibility 1.3s;
}
.shown{
visibility:visible;
opacity: 1;
-moz-transition: opacity 1s, visibility 1.3s;
-webkit-transition: opacity 1s, visibility 1.3s;
-o-transition: opacity 1s, visibility 1.3s;
transition: opacity 1s, visibility 1.3s;
}
JS:
function showOrHide() {
$('#element').toggleClass("hidden shown");
}
感谢@tomas.satinsky在这篇文章中提供的令人敬畏(且超级简单)的答案。
你应该看看在jQuery上找到的toggle
函数。 这将允许您指定缓动方法来定义切换的工作方式。
slideToggle
只会上下滑动,而不是左/右滑动,如果这是您要找的。
如果你也需要切换类,你可以在toggle
函数中使用以下命令对其进行优化:
$(this).closest('article').toggle('slow', function() {
$(this).toggleClass('expanded');
});
应该检查一下,一旦我包含 jQuery UI 库,它工作正常并且正在制作动画......
- 可以'使用jQuery animate时无法看到动画
- 如何使用jquery animate来回移动多个元素
- jQuery animate()函数没有't设置动画
- JQuery.animate();不以固定高度工作
- 有没有一种方法可以用步骤递归调用jQuery animate()
- jquery animate无法正常工作
- JQuery.animate()菜单幻灯片返回
- jQuery animate只在单击时工作一次
- 如何在不使用css转换的情况下将jQuery animate与css3属性相结合
- Implementation of jQuery 'animate' with Meteor
- jQuery Animate 在创建图库滑块时不起作用
- jQuery animate 会中断空格键滚动
- Jquery Animate on IE makes error
- 使用 jQuery animate 时绘制一个又一个对象的线条
- Jquery animate 不能与 IE 一起使用 - 什么也没发生
- 只执行一次jquery animate
- 第一个jQuery.animate()不工作
- 使用jquery animate()在文本上实现反弹效果
- jquery .animate 回调自动执行
- jQuery+Animate.css动画只工作一次,动画不会重置