jQuery移动版(jQuery Mobile)是一个基于jQuery的框架,专门用于构建移动端Web应用。它提供了丰富的UI组件,其中包括可折叠内容块(Collapsible),允许用户通过点击标题来展开或折叠内容。标题部分通常包含文字和可选的图标。
jQuery Mobile提供了图标集,通过data-icon
属性指定图标:
<div data-role="collapsible">
<h3>
标题
<span class="ui-icon ui-icon-plus ui-icon-shadow"></span>
</h3>
<p>这里是可折叠的内容...</p>
</div>
通过CSS添加自定义图标并控制其位置:
<div data-role="collapsible" class="custom-collapsible">
<h3>
标题
<span class="custom-icon"></span>
</h3>
<p>内容区域</p>
</div>
<style>
.custom-collapsible h3 {
position: relative;
padding-right: 30px; /* 为图标留空间 */
}
.custom-icon {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
width: 20px;
height: 20px;
background-image: url('your-icon.png');
background-size: contain;
}
.ui-collapsible-heading-toggle.ui-btn-active .custom-icon {
background-image: url('your-active-icon.png'); /* 展开状态图标 */
}
</style>
监听折叠事件并切换图标类:
$("[data-role='collapsible']").on("collapsibleexpand collapsiblecollapse", function(event) {
const icon = $(this).find(".custom-icon");
if (event.type === "collapsibleexpand") {
icon.removeClass("icon-collapsed").addClass("icon-expanded");
} else {
icon.removeClass("icon-expanded").addClass("icon-collapsed");
}
});
position: relative
。top/right
值或使用Flex布局。$(document).ready()
中)。$(document).on("collapse", "...")
)。如果需要更复杂的交互(如动画效果),建议结合CSS3过渡或第三方动画库(如Animate.css)。