Here are the instruments that our brand serves:
...
...
...
...
Here are the instruments that our brand serves:
...
...
...
...
前): Eclipse导入Android或其他的JAVA项目的正确方法 WORD版 本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 下载
$(document).ready(function () {
const $boxes = $('.product-info-box');
const $btn = $('.showmore button');
// 初始状态:仅显示前2个,隐藏后续所有
if ($boxes.length > 2) {
$boxes.slice(2).hide(); // 更语义化的写法,替代 :gt(1)
$btn.show();
}
$btn.on('click', function () {
const $hiddenBoxes = $boxes.slice(2);
$hiddenBoxes.toggle();
// 动态更新按钮文案
const text = $hiddenBoxes.is(':visible') ? 'Show Less' : 'Show More';
$(this).text(text);
});
});✅ 优势说明: 使用 .slice(2) 替代 :gt(1),代码更易读且避免 jQuery 版本兼容性风险; 按钮始终存在,初始隐藏后的内容不会影响布局流(display: none 不占空间); 支持任意数量的 .product-info-box,扩展性强(新增乐器只需加 class 即可)。 ? 步骤三:可选 CSS 增强体验 为提升交互反馈,可添加平滑过渡效果(需确保目标元素无 display 冲突):
.product-info-box {
transition: opacity 0.3s ease, transform 0.3s ease;
}
.product-info-box:not(:visible) {
opacity: 0;
transform: translateY(-10px);
}⚠️ 注意事项: 若使用 float: right(如你原始 CSS 中的 #guitarbox),折叠后可能引发父容器高度塌陷。建议将 #product-info 改为 Flex 布局(已提供在答案 CSS 中):
#product-info {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
避免在 .product-info-box 上设置 height 或 overflow: hidden,否则 toggle() 可能失效;
如需纯原生 JS 方案(无 jQuery),可使用 Element.classList.toggle() 配合 CSS max-height 过渡,但对复杂结构动画支持较弱。
✅ 总结
该方案以
低耦合、高复用
为核心:
? 仅通过添加一个通用 class 即可管理任意 div 组件的显隐;
? 按钮文案自动同步状态,用户体验一致;
? 完全保留原有 HTML 语义与样式,零破坏升级;
? 适用于产品页、FAQ、仪表盘等多场景卡片列表。
现在,你的 Violin 和 Cello 区块将默认隐藏,点击“Show More”即可优雅展开——整个过程不依赖第三方插件,代码清晰可控,是专业落地页开发的标准实践。
相关文章