Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取此手风琴样式显示/隐藏功能的隐藏div高度?_Javascript_Jquery_Css - Fatal编程技术网

Javascript 如何获取此手风琴样式显示/隐藏功能的隐藏div高度?

Javascript 如何获取此手风琴样式显示/隐藏功能的隐藏div高度?,javascript,jquery,css,Javascript,Jquery,Css,我正在努力使这个节目顺利进行。当我简单地使用 $(this.find(.less”).toggleClass(“more”) 它工作得很好,但有点神经质,所以我尝试为高度添加.animate,但是无法在jQuery中使用heightauto。我怎样才能让这个手风琴像它制作的那样上下滑动呢 欢迎提出任何建议。这里有一个小提琴的链接: 显示无将从页面中删除布局,因此高度将始终为0。我会将这些元素的opacity设置为0,因为opacity(或visibility:hidden;)将隐藏页面上的元素,

我正在努力使这个节目顺利进行。当我简单地使用

$(this.find(.less”).toggleClass(“more”)

它工作得很好,但有点神经质,所以我尝试为高度添加
.animate
,但是无法在jQuery中使用height
auto
。我怎样才能让这个手风琴像它制作的那样上下滑动呢

欢迎提出任何建议。这里有一个小提琴的链接:


显示无将从页面中删除布局,因此高度将始终为0。我会将这些元素的
opacity
设置为
0
,因为opacity(或
visibility:hidden;
)将隐藏页面上的元素,但保持其布局/高度,然后当插件启动时,获取每个元素的高度,分配给数据属性,然后设置固定高度并将不透明度淡入1。然后单击,根据手风琴是否打开的类别设置固定高度或数据属性高度的动画

$(功能手风琴(){
$('.accordion>div')。每个(函数(){
var height=$(this.outerHeight();
$(this).attr('data-height',height);
$(this.addClass('less');
});
$(“.accordion”)。单击(函数(){
var$less=$(this.find('.less'),
高度=$less.attr('data-height')+'px';
美元以下。toggleClass(“开放”);
如果($less.hasClass('open')){
美元以下。动画({
高度:高度,,
}, 400)
}否则{
美元以下。动画({
高度:“20px”,
}, 400)
}
返回false;
});
});
。手风琴环绕{
保证金:自动;
过渡:均为0.5s;
光标:指针;
}
手风琴包装{
填充:30px 20px;
文本对齐:左对齐;
边框:1px实心#dbdb;
过渡:所有500ms线性;
边缘底部:-1px;
}
.手风琴包装。已选定{
边框:1px纯红;
保证金:-1px0;
位置:相对位置;
}
.手风琴环绕按钮,
.手风琴包{
显示:块;
保证金:自动;
}
.手风琴包{
颜色:#0A0A;
}
.手风琴包装。更少,
.手风琴包装.更多{
宽度:80%;
文本对齐:居中;
保证金:0自动;
}
.手风琴包,少一点{
不透明度:1;
高度:20px;
溢出:隐藏;
}
.手风琴>div{
不透明度:0;
转变:不透明度。5s;
}

伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。
伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。日耳曼科。。
伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。日耳曼科。。日耳曼科。。伊普塞
奥皮尼尼伯斯·阿切多,德国的一种。。
伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。

Display none从页面中删除布局,因此高度始终为0。我会将这些元素的
opacity
设置为
0
,因为opacity(或
visibility:hidden;
)将隐藏页面上的元素,但保持其布局/高度,然后当插件启动时,获取每个元素的高度,分配给数据属性,然后设置固定高度并将不透明度淡入1。然后单击,根据手风琴是否打开的类别设置固定高度或数据属性高度的动画

$(功能手风琴(){
$('.accordion>div')。每个(函数(){
var height=$(this.outerHeight();
$(this).attr('data-height',height);
$(this.addClass('less');
});
$(“.accordion”)。单击(函数(){
var$less=$(this.find('.less'),
高度=$less.attr('data-height')+'px';
美元以下。toggleClass(“开放”);
如果($less.hasClass('open')){
美元以下。动画({
高度:高度,,
}, 400)
}否则{
美元以下。动画({
高度:“20px”,
}, 400)
}
返回false;
});
});
。手风琴环绕{
保证金:自动;
过渡:均为0.5s;
光标:指针;
}
手风琴包装{
填充:30px 20px;
文本对齐:左对齐;
边框:1px实心#dbdb;
过渡:所有500ms线性;
边缘底部:-1px;
}
.手风琴包装。已选定{
边框:1px纯红;
保证金:-1px0;
位置:相对位置;
}
.手风琴环绕按钮,
.手风琴包{
显示:块;
保证金:自动;
}
.手风琴包{
颜色:#0A0A;
}
.手风琴包装。更少,
.手风琴包装.更多{
宽度:80%;
文本对齐:居中;
保证金:0自动;
}
.手风琴包,少一点{
不透明度:1;
高度:20px;
溢出:隐藏;
}
.手风琴>div{
不透明度:0;
转变:不透明度。5s;
}

伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。
伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。日耳曼科。。
伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。日耳曼科。。日耳曼科。。伊普塞
奥皮尼尼伯斯·阿切多,德国的一种。。
伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊普塞-伊。。。德国波波里酒店。。。

您可以使用属性scrollHeight,因为当
$(function accordion(){
        $(".accordion").click(function() {


             $(this).find(".less").toggleClass("more");

             var height = $('.accordion .less').show().height();
             $('.accordion .less').hide();

             $('.accordion .less').show();

             console.log(height);

            if ( ($(this).find('.less').hasClass('more')) ) {

                    $(this).find('.less').animate({
                        height: height,
                    },400)                       
                } else {

                 $(this).find('.less').animate({
                        height:"20px",
                    },400) 
                }
                return false;

           });
    });