splide grid 扩展需通过 `window.splide.extensions` 而非 `window.splide.grid` 挂载,且必须确保 grid 插件脚本已正确加载、配置项结构符合 v4+ 规范(如使用 `rows/cols` 替代旧版 `dimensions`)。
在 Splide v4 及更高版本中,Grid 扩展的挂载方式已发生重要变更:不再支持直接挂载 window.splide.Grid,而必须统一通过 window.splide.Extensions 对象注册所有官方扩展。这是导致你代码中 Grid 未生效的根本原因。
引入必要资源(按顺序):
初始化时挂载 Extensions(关键!):
jQuery(function($) {
const splide = new Splide('#exmpale-slick', {
type: 'loop',
height: '20rem',
gap: '1em',
perPage: 2,
perMove: 1,
// ✅ G
rid 配置:v4+ 推荐使用 rows/cols + gap(更语义化)
grid: {
rows: 2,
cols: 2,
gap: {
row: '1em',
col: '1em'
}
},
breakpoints: {
600: {
height: '10rem',
perPage: 1,
grid: {
rows: 1,
cols: 1,
gap: {
row: '.5em',
col: '.5em'
}
}
}
}
});
// ✅ 正确挂载方式:传入 window.splide.Extensions
splide.mount(window.splide.Extensions);
});document.addEventListener('DOMContentLoaded', () => {
const splide = new Splide('#exmpale-slick', { /* config */ });
splide.mount(window.splide.Extensions);
});初始化后,检查 DOM 中 .splide__slide 元素是否被自动添加了 data-splide-grid-row 和 data-splide-grid-col 属性,并在开发者工具中观察其 CSS display 是否变为 grid —— 若两者均存在,即表示 Grid 扩展已激活。
遵循以上规范,你的 Splide 轮播图将正确呈现响应式网格布局,无需任何额外 CSS 干预。