当在页面中初始化多个 swiper 实例时,若共用相同的 `.swiper-button-next`、`.swiper-
button-prev` 或 `.swiper-pagination` 类名,所有实例会绑定到同一组 dom 元素,导致点击任一箭头或分页项时所有轮播同时响应。解决方法是为每个 swiper 实例分配**唯一的选择器**。
在 Webflow(或其他静态/无框架环境)中使用多个 Swiper 实例时,一个常见却容易被忽略的问题是:导航按钮和分页器未做实例隔离。你当前的代码中,swiper2、swiper3 和 swiper4 均将 navigation.nextEl 和 navigation.prevEl 指向了通用类 .swiper-button-next 与 .swiper-button-prev,同样地,pagination.el 全部指向 .swiper-pagination —— 这意味着浏览器只会找到页面中第一个匹配的元素(或在事件委托下全局触发),最终所有 Swiper 实例共享同一套控制逻辑。
✅ 正确做法是:为每个 Swiper 实例定义专属的导航与分页 DOM 元素,并在初始化时使用唯一 CSS 类名或 ID 作为选择器。
以下是修正后的关键代码片段(仅展示 swiper2 和 swiper3 的核心差异部分,swiper4 同理):
// Swiper 实例 2 — 使用专属类名
var swiper2 = new Swiper(".swiper2", {
// ... 其他配置保持不变 ...
navigation: {
nextEl: '.swiper-button-next-2', // ← 唯一类名
prevEl: '.swiper-button-prev-2', // ← 唯一类名
},
pagination: {
el: '.swiper-pagination-2', // ← 唯一类名
}
});
// Swiper 实例 3 — 使用专属类名
var swiper3 = new Swiper(".swiper3", {
// ... 其他配置保持不变 ...
navigation: {
nextEl: '.swiper-button-next-3',
prevEl: '.swiper-button-prev-3',
},
pagination: {
el: '.swiper-pagination-3',
}
});? 对应的 HTML 结构(以 swiper2 为例)需同步更新:
⚠️ 注意事项:
总结:多 Swiper 实例并存时,“功能耦合”源于选择器重名而非 Swiper 本身缺陷。只要保证 navigation.nextEl / prevEl 和 pagination.el 的值在每个实例中全局唯一,即可实现完全独立的交互控制——这是 Swiper v8+ 官方推荐的标准实践。