swiper 不能new 成功

本文探讨了使用Swiper滑动组件时遇到的问题,即当包含Swiper的div设置为display:none时,滑动功能无法正常工作。通过实验发现,调整显示方式为渐显可以解决问题,并分析了可能的原因。
部署运行你感兴趣的模型镜像

前言

今天任务需要用swiper 做滑动,我就很简单的用滑动插件swiper 来做。但是很神奇的,我按照正常的流程写,但是滑动就是没有生效。
我的代码是这样的

<div id="step1">
</div>
<div id="step2" style="display:none;">
    <div class="swiper-container">
         <div class="swiper-wrapper">
                <div class="swiper-slide">Slide 1</div>
                <div class="swiper-slide">Slide 2</div>
                <div class="swiper-slide">Slide 3</div>
        </div>
    </div>
</div>

类似的 我需要在第一个div隐藏掉,第二个div 展示出来然后定义滑动。可是没有成功。

原因

找了很久发现是 div:display:none 的原因。。。

因此我单独做了测试:

<div id="one" style="display:none;">
         <div class="swiper-container">
            <div class="swiper-wrapper">
                <div class="swiper-slide">Slide 1</div>
                <div class="swiper-slide">Slide 2</div>
                <div class="swiper-slide">Slide 3</div>
                <div class="swiper-slide">Slide 4</div>
                <div class="swiper-slide">Slide 5</div>
                <div class="swiper-slide">Slide 6</div>
                <div class="swiper-slide">Slide 7</div>
                <div class="swiper-slide">Slide 8</div>
                <div class="swiper-slide">Slide 9</div>
                <div class="swiper-slide">Slide 10</div>
            </div>
            <!-- Add Pagination -->
            <div class="swiper-pagination"></div>
        </div>
    </div>
      var swiper = new Swiper('.swiper-container', {
        pagination: '.swiper-pagination',
        slidesPerView: 4,
        paginationClickable: true,
        spaceBetween: 40
     });
    $("#one").fadeIn();

这个就不能滑动

   $("#one").fadeIn();
      var swiper = new Swiper('.swiper-container', {
        pagination: '.swiper-pagination',
        slidesPerView: 4,
        paginationClickable: true,
        spaceBetween: 40
     });

这样就可以滑动。。

但是我自己的项目代码里面 先fadeIn() 也不能正常初始化。可能还有其他的坑。但是我已经知道,如果不用display:none . 就可以避开这个。

解决

div 原来等于 display:none 的 我都用opacity 和 z-index 实现,可以正常初始化我自己的swiper了。

但是我还是不知道为什么 display:none 就不能初始化成功。

而且我自己的代码 明明是先fadeIn() 的 还是会出现 初始化不成功的现象。所以还需要后观察。

但是可以确定,display:none 一定对 new swiper 有影响!!!

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### Vue 项目中 Swiper 轮播图自动播放时分页器不可点击的解决方案 在处理 Swiper 轮播图自动播放功能时,如果遇到分页器(即小圆点)无法点击的问题,通常是因为配置选项设置不当或事件监听未正确绑定。为了使分页器能够正常工作并响应用户的交互操作,需确保以下几点: #### 配置参数调整 确认 `swiper` 初始化对象中的 `pagination` 和 `autoplay` 参数已正确定义,并且启用了触摸控制和暂停互动特性。 ```javascript const swiper = new Swiper('.swiper-container', { pagination: { el: '.swiper-pagination', clickable: true, // 设置为true允许用户点击分页器切换幻灯片 }, autoplay: { delay: 3000, disableOnInteraction: false, // 当用户与Swiper进行交互后不停止自动播放 } }); ``` 上述代码片段展示了如何通过设置 `clickable` 属性来启用分页器可点击的功能[^1]。 同时,将 `disableOnInteraction` 设定为 `false` 可防止当用户触碰滑块区域之后停止自动滚动行为。 #### DOM 结构验证 检查 HTML 中是否存在 `.swiper-pagination-bullet-active` 类名被应用到当前激活状态的小圆点上;如果没有,则可能是由于 JavaScript 加载顺序错误或是 CSS 文件丢失造成的样式问题。确保所有必要的资源文件都加载完毕再初始化 Swiper 实例。 另外,在浏览器开发者工具里观察实际生成的 DOM 是否含有预期结构以及是否有任何阻止默认行为的脚本运行。 #### 更新版本兼容性 考虑到不同版本间的差异可能引起的行为变化,建议查阅官方文档获取最新版 Swiper 的 API 文档说明,以保证所使用的属性名称及其取值范围是最新的定义方式。对于旧项目的维护来说尤为重要,因为随着时间推移库本身会经历多次迭代更新而引入新特性和废弃部分过时接口。 #### 浏览器调试技巧 利用现代浏览器提供的开发者工具可以帮助快速定位问题所在。例如 Chrome DevTools 提供了详细的性能分析面板,可用于检测页面上的潜在瓶颈;网络请求监控则有助于排查外部依赖项是否全部成功下载等问题。 ```bash F12 打开开发者工具 -> Elements 查看元素树形结构 -> Console 输出日志信息辅助诊断 ``` 以上方法能有效帮助解决 Swiper 组件内分页器在开启自动播放模式下失去交互能力的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值