如何使用 css 过渡使 jquery 移动可折叠内容与动画一起出现?
.ui-collapsible {
-webkit-transition: all 1s;
-moz-transition: all 1s;
-ms-transition: all 1s;
-o-transition: all 1s;
transition: all 1s;
}
不工作。
如何使用 css 过渡使 jquery 移动可折叠内容与动画一起出现?
.ui-collapsible {
-webkit-transition: all 1s;
-moz-transition: all 1s;
-ms-transition: all 1s;
-o-transition: all 1s;
transition: all 1s;
}
不工作。
display: none
通过切换可折叠内容的 div来显示和隐藏 jQuery Mobile 的可折叠元素。据我所知,所有主流浏览器都会在display
属性更改时禁用 CSS 过渡。
另一种方法是覆盖 jQuery Mobile 的默认 CSS 以始终display: block
用于可折叠内容 div,然后在height
oropacity
属性上进行转换(取决于是否需要从布局中“删除”内容)。
我创建了这个jsFiddle来演示使用该opacity
属性的转换。这实际上只是使用以下 CSS 规则的问题:
.ui-collapsible-content {
-webkit-transition: all 1s;
-moz-transition: all 1s;
-ms-transition: all 1s;
-o-transition: all 1s;
transition: all 1s;
opacity: 1;
}
.ui-collapsible-content-collapsed {
display: block;
opacity: 0
}
由于内容 div 没有设置高度,因此使用该height
属性进行转换有点棘手。这个小提琴可以解决问题(另见下面的 CSS),但它需要在内容 div 上设置一个高度。您可以将高度更改为auto
,但是在我看来,向下滑动的效果看起来不太正确。也许其他人知道更好的方法。
.ui-collapsible-content {
-webkit-transition: all 1s;
-moz-transition: all 1s;
-ms-transition: all 1s;
-o-transition: all 1s;
transition: all 1s;
height: 2em; /* or auto */
overflow: hidden;
}
.ui-collapsible-content-collapsed {
display: block;
height: 0;
padding: 0 16px;
}
.ui-collapsible-content {
-webkit-transition: all 1s;
-moz-transition: all 1s;
-ms-transition: all 1s;
-o-transition: all 1s;
transition: all 1s;
opacity: 1;
}
.ui-collapsible-content-collapsed {
display: block;
opacity: 0
}
我认为您必须创建基于 CSS 的自定义过渡:-