我正在尝试创建两个按钮,一个用来展开div,另一个用来折叠div。我试着修改这段代码,但似乎无法让它工作。我想我只是不明白如何不切换链接。
我还尝试在页面加载时显示DIV。我甚至不确定以我编写代码的方式是否可行。
有谁能帮我弄明白我需要做什么才能让这个工作。
http://jsfiddle.net/XUjAH/93/
我试图避免使用.slideUp/.slideDown,它似乎干扰了我在页面上使用的另一个插件。
$('#click-meopen').click(function() {
var height = $("#this").height();
if( height > 0 ) {
$('#this').css('height','0');
} else {
$("#this").css({'position':'absolute','visibility':'hidden','height':'auto'});
var newHeight = $("#this").height();
$("#this").css({'position':'static','visibility':'visible','height':'0'});
$('#this').css('height',newHeight + 'px');
}
});
$('#click-meclose').click(function() {
var height = $("#this").height();
if( height > 0 ) {
$('#this').css('height','0');
} else {
$("#this").css({'position':'absolute','visibility':'hidden','height':'auto'});
var newHeight = $("#this").height();
$("#this").css({'position':'static','visibility':'visible','height':'0'});
$('#this').css('height',newHeight + 'px');
}
});
6条答案
按热度按时间rxztt3cl1#
以下所有文字仅为IMHO:)
请在此处查看我的示例-http://jsfiddle.net/XUjAH/99/
HTML格式:
至于JS:
至于CSS,它应该和您所拥有的一样。
UPD:看起来动画有点古怪-当您将"高度:auto' - div从一开始就是可见的,但是关闭按钮在第一次点击时会忽略动画(我有最新更新的Chrome),所以我添加了一些解决方法。还添加了其他样式来支持其他浏览器(如Firefox和Opera)的动画,而不仅仅是支持-webkit的浏览器。
http://jsfiddle.net/XUjAH/110/
在CSS中添加了类并从主样式中删除了“transition”:
在JS://然而我们的div已经有适当的大小这一行//防止即时关闭第一次点击,不知道为什么$(“#container”).height($(“#content”).height());
x7yiwoj42#
如果可以使用
toggle
,则只需使用$("#this").toggle('slow');
,但必须将height: 0;
替换为display: none;
nbnkbykc3#
http://jsfiddle.net/XUjAH/95/
或带切换
http://jsfiddle.net/XUjAH/96/
zzzyeukh4#
您正在尝试将此更改为按钮?
这并不难做到。
我还建议您使用jQuery的
.toggle()
或.show(),.hide()
方法,仅仅将css height属性设置为零并不是一个好的做法。您要在页面载入时或完成载入时(DOM就绪)显示div吗?
您的JavaScript代码将是:
如果你只想使用一个按钮,你应该使用
.toggle()
方法,否则坚持使用.show(),.hide()
方法!当DOM准备就绪时(页面已完全加载):
所用方法的文档:
ryevplcw5#
我看到你已经使用了
-webkit-transition
,它在chrome中对我有效,但我猜你希望它在webkit之外的其他浏览器中有效。有两种方法我可以建议,一是只是简单地添加
-moz-transition: height 1s ease-in-out;
和transition: height 1s ease-in-out;
做它与css3,但这不会帮助在旧的ie浏览器。另一种方法是在要折叠的div中的文本内放置一个div:
然后在javascript中你可以得到内部div-element的高度,这样你就可以用animate代替height:自动
这对你来说应该足够了。
9w11ddsr6#
http://jsfiddle.net/XUjAH/100/