You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用jQuery动态修改Bootstrap折叠组件内进度条的aria-valuenow和width属性

解决方案

问题原因

  • 第二个折叠容器#collapseExample1的class错误设置为collapse1,不符合Bootstrap折叠组件要求,无法触发官方的show.bs.collapse事件
  • 原有JS仅绑定了单个折叠容器#collapseExample的事件,没有覆盖所有折叠组件
  • 进度条选择器为全局匹配,会导致点击任意折叠面板时,所有折叠面板内的进度条都被修改
  • 没有给进度条配置宽度过渡属性,无法呈现动态推进的动画效果

实现步骤

1. 修正HTML错误

将第二个折叠容器的class改为Bootstrap要求的collapse:

<!-- 修改前 -->
<div class="collapse1" id="collapseExample1">
<!-- 修改后 -->
<div class="collapse" id="collapseExample1">

2. 添加进度条动画CSS

给进度条增加宽度过渡属性,控制动画时长和缓动效果:

.progress-bar {
  /* 1.5s为动画总时长,可根据需求自行调整 */
  transition: width 1.5s ease;
}

3. 替换原有JS代码

改为通用绑定所有折叠组件,仅操作当前展开容器内的进度条:

(function ($) {
    "use strict";
    // 绑定所有折叠组件的展开事件
    $('.collapse').on('show.bs.collapse', function () {
        // 仅查找当前展开容器内的进度条进行赋值
        $(this).find('.progress-bar').each(function () {
            const targetVal = $(this).attr('aria-valuenow');
            $(this).css('width', targetVal + '%');
        });
    });

    // 可选功能:折叠收起时重置进度条宽度,下次展开重新播放动画
    $('.collapse').on('hide.bs.collapse', function () {
        $(this).find('.progress-bar').css('width', '0%');
    });
})(jQuery);

如果你需要和现有waypoint驱动的进度条效果完全一致,直接把上面css('width', targetVal + '%')的部分替换为你waypoint里的进度动画逻辑即可。


内容的提问来源于stack exchange,提问作者jbat21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:36:03