动画css效果- JQuery
Animate css effect - JQuery
我有一个表。指定行高度,并将溢出设置为隐藏。单击后,该行将向下展开,显示隐藏的内容。我用toggle
方法做了这个。更改样式以显示内容。这是完美的。但我想给它添加一些滑动动画效果。在我单击行之后,它立即展开。相反,我希望它以平滑的动画格式发生,就像在一些jQuery菜单中一样。另外,如果另一行展开,我想隐藏一个打开的行。
您可以看到一个正在工作的小提琴这里
就是这样做的:
-通过jQuery设置高度为40px,但在此之前,计算的高度"打开"元素。
-点击动画。
var cl4h = $('.class4').height(); // get the height of the opened .class4
$('.class4').css({ height:'40px' }); // set height to 40px;
$('.class4').toggle(function() {
$(this).animate({ height: cl4h });
}, function() {
$(this).animate({ height: '40px' });
});
注:
从你的CSS中删除height: 40px;
为el .class4
如果你必须使用多个类,这里有一个使用jQuery .data()
的演示:
DEMO with .data()
$('.class4').each(function(e) {
var cl4h = $(this).height(); // get height of each element
$(this).data('height', cl4h); // and store it into .data (for each el)
});
$('.class4').css({height: '40px'}); // set heights to 40px on page load
$('.class4').toggle(function() {
$(this).animate({height: $(this).data('height') }); // call the el .data where is stored the el height
}, function() {
$(this).animate({height: '40px'});
});
与其使用.css()
更改display
属性,不如尝试将其更改为display: block;
,并在同一位置使用.animate()
来动画元素的高度
您也可以使用.fadeIn()
和.fadeOut()
动画,使用linear
easing选项。这将给你一个很好的过渡效果,因为.fadeIn()
(显然)不会一次发生。
相关文章:
- 为什么不在浏览器上获得JQuery效果呢
- Rails-jQuery 为什么我必须单击两次才能显示 jQuery 效果
- 每次鼠标悬停触发一次 jquery 效果
- 对 jquery 效果应用自定义操作
- 鼠标点击时停止jquery效果's停止
- 在 scrollTop 上应用 Jquery 效果时遇到问题
- 为什么jQuery效果在我的手机上不起作用,但在我的桌面上工作
- 将自定义 JavaScript/jQuery 效果添加到 MVC 3 表单验证中
- jQuery 效果在 Wordpress 模板文件中不起作用
- 如何在用户可视化页面点时启动 jQuery 效果
- 需要在同一页面上使用多个相同的jQuery效果
- 无法将 jquery 效果函数应用于动态创建的元素
- 仅在单击时将 jQuery 效果添加到 HTML 元素父级
- 如何减慢这种 JQuery 效果
- 如何使用javascript切换某些jquery效果
- 用于加载的JQuery效果/动画
- 如果有多个元素被动画化,如何知道jquery效果何时结束
- jQuery效果:我哪里出错了
- 使用淡入淡出滚动jQuery效果的2列浮动画廊
- 加载后Jquery效果消失