在vue项目中引入swiper进而出现的坑和处理

这篇具有很好参考价值的文章主要介绍了在vue项目中引入swiper进而出现的坑和处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、项目中的问题展示

在做公司的一个老项目迭代的过程中,出现了不少的坑,今天专门说一下与swiper相关的坑以及体会吧!

1.1 swiper的事件,没有成功挂载

这个世界,总是会有意外发生的,尤其当你对老代码的复制特别自信的时候。由于在老项目中引入swiper来做移动端的滑动效果,当时产品有一个需求,要求把一个弹窗中的一个图改为一组图的移动展示,这个大家应该都可以想象出来,也就是原来图的位置要换成一组图,由于弹窗在展示之前,display设置为none,所以在调出来的时候,swiper的滑动失效了。

先说如何解决,有两种方法,
第一种
是给swiper设置observe,这个属性,可以告知swiper实例,当自身刷新的时候,可以初始化swiper,我看了半天的源码,希望找到到底是哪里出错了,但是没有找到,但是他可以走到init_swiper和swiper这两个文件,有兴趣的人可以自己去看看,到底为啥display 为 none 再到 block 的时候,会出现这个一些样式无法挂载到touchEnd等方法上,我也没有很清楚,但是确实很多效果都失效了。
第二种
方法就是在弹窗弹出的时候,调用下面的方法,关键点在于要使用dom全部渲染好之后再次update

updateSwiper() {
  this.$nextTick(() => {
    // @ts-ignore
    this.swiper?.update(true);
  });
},

1.2 swiper的分页器bullets修改样式时的一些冲突

当时,有一个需求,是将原来弹窗中的一张图,变成一组图,并且其中的图要用swiper加上分页器,加上以后,想把分页器的点变成动态的,并且变换一下颜色,

这里面就要使用到dynamicBullets

并且要新建一个style,千万不能顺手加scoped,否则你的样式无法穿透下去,这里要直接设置swiper-pagination-bullet-active-main的样式,按照自己的需求来改。

如果你怕影响其他的带有分页器的swiper组件,可以使用bulletClass来修改一下名字。

这里面有一个坑,!!!

就是千万不能同时设置bulletActiveClass和drymaticBullets,因为后者会把前者的设置的样式顶掉的!!!文章来源地址https://www.toymoban.com/news/detail-455295.html

到了这里,关于在vue项目中引入swiper进而出现的坑和处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法

    Springboot项目出现的依赖错误。 在Springboot项目启动时,项目报错‘parent.relativePath’ of POM问题,项目无法正常启动。    发生该问题的根本原因是因为在项目文件夹的外层包含着另一个项目,此时项目文件无法确定该文件的pom依赖是引用哪一个parent依赖导致的。推荐使用方法二

    2024年02月13日
    浏览(34)
  • 【VUE】6、VUE项目中引入axios

    1、初识 axios Axios,是一个基于 promise 的网络请求库,作用于 node.js 和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和 node.js 中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequest。 主要特点: 从浏览器创建 XMLHttpRequests 从 node.js 创建

    2023年04月11日
    浏览(25)
  • vue项目引入antDesignUI组件

    快速安装ant-design-vue并配置,vue2.0 + antDesign@1.7.8 引入成功,使用antDesign-vue 中tree组件效果如下: 完结~

    2024年02月12日
    浏览(31)
  • vue项目中使用CDN引入

    CDN(内容分发网络)指请求资源的方式,即通过script头去请求对应的脚本资源的一种方式,项目里配置之后不需要通过npm包管理工具去下载配置的包。 目的:将引用的外部js、css文件剥离开来,不编译到vendor.js中,而是用资源的形式引用,这样浏览器可以使用多个线程异步将

    2024年02月11日
    浏览(44)
  • React 项目中引入msal验证以及部分报错处理

    如何在React 项目中引入msal身份验证, 微软在官网有提供文档支持,文档包含示例和具体使用的教程,地址如下: https://learn.microsoft.com/zh-cn/azure/active-directory/develop/tutorial-v2-nodejs-webapp-msal 照着文档操作,记录报错 问题1描述: TS2322: Type ‘Msal2Provider’ is not assignable to type ‘I

    2024年02月10日
    浏览(24)
  • Vue项目本地开发集成引入https

    问题描述 本地项目开发中用到的接口是https ,本地http会请求不到数据 案例使用采用的vue-cli开发,所以需要针对这两种方式启动https npm 安装 npm i mkcert -g 注意 需要将keys目录移动项目的根目录。 安装证书 1.进入keys文件夹双击ca.crt,在弹出的对话框中点击“安装证书” 修改

    2024年02月12日
    浏览(43)
  • Vue项目中引入高德地图步骤详解

    高德地图API官网:高德开放平台 | 高德地图API。 目录 一、案例效果 二、开发准备 1. 注册高德开放平台账号 2. 创建应用添加 key 值 三、项目中使用地图组件 1. npm 获取高德地图 API 2.在项目中新建 MapContainer.vue 文件,用作地图组件。 3.在 MapContainer.vue 地图组件中创建 div 标签作

    2024年02月03日
    浏览(35)
  • vue3项目中引入ts

    提示:文章是基于vue3的项目基础上引入ts vue create vue3-ts 选择自定义预设,ts设置未选中状态 选择yarn与npm启动项目(根据个人,在这里我选择yarn) 问题一: 问题二: 问题一 在script 标签中引入ts后,会产生JSX语法错误,这时我们需要引入ts(全局引用与局部引用) 第一步:

    2023年04月10日
    浏览(29)
  • Vue3项目中引入html页面

    Vue3项目中引入html页面,通常是需要实现 跳转 加载html页面的功能。之前为了实现需求查找解决方法时多数推荐使用iframe标签实现,尝试后发现iframe是将html页面嵌入到vue中,不符合自身的需求。总结方法如下: 1.导入文件 将需要导入的文件(单个文件或是项目)放置于publi

    2024年02月15日
    浏览(26)
  • Vue项目中实现ElementUI按需引入

    🐱 个人主页: 不叫猫先生 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫优质专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料可以找我免

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包