在这个例子中,我的 div 容器只是隐藏和显示,但没有做很棒的 jQuery 动画。
$('.button').click(function() {
$('.class1').slideToggle();
});
谁能告诉我为什么?我知道表格上的动画不能正常工作,但在 div 上应该没问题。
更新感谢所有答案。我缺少的信息是绝对位置会从 DOM 中删除元素。是的,我知道我应该把样式放在 css 中——这个版本只是为了快速测试,但谢谢你的回答!!!
在这个例子中,我的 div 容器只是隐藏和显示,但没有做很棒的 jQuery 动画。
$('.button').click(function() {
$('.class1').slideToggle();
});
谁能告诉我为什么?我知道表格上的动画不能正常工作,但在 div 上应该没问题。
更新感谢所有答案。我缺少的信息是绝对位置会从 DOM 中删除元素。是的,我知道我应该把样式放在 css 中——这个版本只是为了快速测试,但谢谢你的回答!!!
.slideToggle() 将元素的高度设置为 0% - 100%,同时隐藏其子元素。
通过在整个小提琴中使用 position:absolute,您正在从 DOM 流中删除子元素并干扰父元素逐渐隐藏其子元素的能力。
如果您将溢出设置为隐藏,并从孩子中删除位置:绝对,这将正常工作。
更新了您的FIDDLE - http://jsfiddle.net/7xzMa/14/ --- 清理了 div,您应该将 css 放入样式表中,以便于编辑。“显示”应设置为“无”。除非您希望它可见,否则单击隐藏。http://jsfiddle.net/7xzMa/8/
Artur,我的建议是完全重构你的代码,这有太多的事情要做。简短而简单总是最好的。我首先要摆脱 html 中的“样式”属性。确保将样式放在 CSS 中(它更干净、更易于维护——比从多个标签中删除样式要好得多)。
刚刚给你做了个demo,希望对你有帮助!随意使用它!快乐编码!http://jsfiddle.net/7xzMa/17/
使用 JQuery 用户界面
$(document).ready(function() {
$('.button').click(function() {
$('.class1').toggle('slide',{direction: 'up'},500);
});
});