移动端Swiper的一些尝试(中间完整,两边有内容,循环展示)

news2024/11/18 19:36:48

【背景】最近公司的需求很多实现一个Swiper滑块,中间完整。两边展示一些内容(可能是固定的提示方案,也可能是前后上下一页的部分内容),然后还需要循环滚动,其中遇到了一些问题特此记录

1、实现两边展示内容的Swiper 

 【方案1】两边内容自绘制

因为设计稿两边是一个没有内容的边边,像一个提示的边框一样,初次想到的方案就是中间(蓝色方框部分)放置Swiper,然后两边按设计稿绝对定位单独画出来单独画出来,可以实现效果

 示例代码如下:


<div class="swiper-wrap">
    <div class="left-side">
        左边内容
    </div>
    <swiper class="swiper-content">
        此处循环你的展示内容
    </swiper>
    <div class="right-side">
        右边内容
    </div>
</div>

样式文件如下,两侧相对于外层swiper容器绝对定位,中间内容正常定位 ,靠margin居中

.swiper-wrap {
    position: relative;
}
.left-side {
    position: absolute;
    top: 10px;
    height: 20px;
    width: 20px
    left: 0;
}
.rigtht-side {
    position: absolute;
    top: 10px;
    height: 20px;
    width: 20px;
    right: 0
}
.swiper-content {
    width: calc(100vw - 60px);
    margin: 0 30px;
}

这种方式实现的带两边内容的swiper,如果两边内容是一些提示信息,是没有问题的,当两边内容是滑块的一部分,即便只是一些背景色块,在滑动时候也会出现滑块滑到最左边或者最右边,显示块和滑动块都在页面上,中间的内容好像被缝隙切断了一样,体验不太好,

 

于是思考对两侧显示部分滑动内容的这种情况,采取应用swiper特性设置显示前后滑块一部分的方式来进行展示是不是会更好,针对移动端的小程序和h5采用不用的设置方式

【方案2】应用swiper展示前后模块的特性设置

小程序方案:应用previous-margin 和 next-margin 进行局部展示

<swiper
    previous-margin="90rpx"
    next-margin="90rpx"
    class="swiper-wrap"
>
    <swiper-item>
        <view class="swiper-content">
            你的单独卡片内容
        </view>
    </swiper-item>
</swiper>

此方案在样式上设置,对swiper本身设置100%宽度,中间内容按设计稿中间和两边的间距设置margin

.swiper-wrap {
    width: 100vw;
    heigth: 20px;
}

.swiper-content {
    width: 10px; // 设计图上你的中间卡片的宽度
    margin: 0 5px; // 距离两边卡片的空白间距
}

这样就可以更平滑的看到是内容在页面上移动啦

H5设置自模块前后展示的方法:使用swiper配置项slidesPerView和centeredSlides,分别初始化配置时候设置以下属性

swiperOptions: {
    loop: true,
    slidesPerView: 'auto',
    centeredSlides: true
}

模板此处我用的是vue-awesome-swiper 3 

<swiper
    :options="swiperOptions"
    class="swiper-wrap"
>
    <swiper-slide>
        <div class="swiper-content">
            你的单独卡片内容
        </div>
    </swiper-slide>
</swiper>

样式设置和小程序类似,但是需要复写swiper-slide的样式,就可以了

.swiper-slide {
    height: 100%;
	background: #fff; // 你的背景色
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
    width: 300px !important; // 你单个swiper卡片的宽度
    margin-right: 32px; // 左右边距
    margin-left: 32px;
}

.swiper-wrap {
    width: 100vw;
    heigth: 20px;
}

.swiper-content {
    width: 300px; // 设计图上你的中间卡片的宽度
}

2、Swiper开启了loop循环属性,h5中异步请求接口拿到数据后,循环列表没循环起来,只能右滑,不能左滑

这个问题,我开发时候用静态mock数据是没有发现的,联调阶段调用接口,异步赋值后,发现从空数组到有值,循环列表却循环不起来,原来循环列表会在swiper渲染前复制若干模块,但是异步获取数据没有触发这种机制,我看网上有开启oberserve属性之类的,我尝试了一下没有生效,我采取了一个比较简单粗暴的方式,在swiper上加数组长度判断,有数据了再显示,相当于有数据了才会初始化,解决了这个问题,不过我这种方案,只适合只需要初始化一次的swiper场景,如果数组频繁赋值,大家还是使用swiper更新的方法吧。

<swiper
    v-if="detailList && detailList.length"
    :options="swiperOptions"
    class="swiper-warp"
>
    你的swiper内容
</swiper>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Canvas 从进阶到退学

本文简介 点赞 关注 收藏 学会了 接着 《Canvas 从入门到劝朋友放弃&#xff08;图解版&#xff09;》 &#xff0c;本文继续补充 canvas 基础知识点。 这次我不手绘了&#xff01; 本文会涉及到 canvas 的知识包括&#xff1a;变形、像素控制、渐变、阴影、路径 变形 这…

向量杂记(python)

以 O 点为圆心&#xff0c; 绘制如上图&#xff0c; 则有向量 vOA&#xff0c; vOB, vOC, vOD 再给定一个X轴方向的单位向量 vX [1, 0] 则 向量 vOA&#xff0c; vOB, vOC, vOD 分别与 vX 进行叉乘&#xff1a; # python 代码 # X Y 轴上的单位向量 vX [1, 0] vY [0, 1]vA …

Matter理论介绍-通用-1-05:桥接设备-发现与配置流程

【源码、文档、软件、硬件、技术交流、技术支持&#xff0c;入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取&#xff0c;免安装&#xff0c;解压即用】 持续更新中&#xff0c;欢迎关注&#xff01; 一、桥接设备的发现 桥接设备如何被其他Matter终端发现呢…

论文阅读《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》

论文地址&#xff1a;https://arxiv.org/pdf/2103.05950.pdf 代码地址&#xff1a;https://github.com/megvii-research/FSCE 对比学习https://zhuanlan.zhihu.com/p/346686467 目录1、存在的问题2、算法简介3、算法细节3.1、new-baseline3.2、对比建议编码3.3、对比建议编码的…

(第二章)OpGL超级宝典学习:创建我们第一个OpenGL程序,绘制一个点和三角形

目录前言创建简单的应用创建脚本渲染底色渲染底色plus使用着色器&#xff08;shader&#xff09;什么是着色器&#xff08;shader&#xff09;GLSLOpenGL的着色阶段编写着色器顶点着色器片段着色器shader对象的创建执行程序的创建删除无用的shader顶点数组对象VAO清理VAO和Prog…

跨孔CT交叉梯度联合反演算法

跨孔CT交叉梯度联合反演算法 利用交叉梯度函数的结构约束作用实现多种跨孔CT的联合反演。 文章目录跨孔CT交叉梯度联合反演算法1、跨孔CT原理2、跨孔CT正演算法2.1 多模块快速推进算法2.2 最短路径法弯曲射线追踪2.3 胖射线追踪2.4 直射线追踪3、跨孔CT正演模型4、交叉梯度联合…

Matlab渐变色生成/编辑器专业版—ColorMapPro

渐变配色在科研绘图时十分常用&#xff0c;比如三维柱状图、特征渲染散点图、热图、曲面图、等高线填充图等等&#xff0c;都需要使用渐变配色。 虽说现成的渐变配色有很多&#xff0c;比如&#xff0c;在TheColor配色工具的渐变颜色库中便集成了近千种的渐变色&#xff1a; 然…

Lambda Python 创建和使用 Layer

目标 由于 Python 代码中需要用到第三方的库, 在 Lambda 中可以通过创建自定义层(Layer)的方式来将这些依赖提供给 Lambda 运行环境. 下面演示创建一个包含第三方库 requests 的层, 以及如何在 Lambda 中调用 准备 zip 文件 首先在本地电脑上将相关依赖下载到名为 python 的…

32.多输入多输出通道

通道数是一个重要的超参数&#xff0c;通常是会仔细设计的。 在之前&#xff0c;我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时&#xff0c;我们的输入和隐藏的表示都变成了三维张量。例如&#xff0c…

OpenPCDet详细安装指南+单/多GPU训练演示

OpenPCDet详细安装指南单/多GPU训练演示前言个人环境一览安装环境安装的各版本1. 创建conda虚拟环境2. 安装PyTorch3. 安装spconv4. 安装PCDet5. 训练单GPU训练多GPU训练前言 本人总共花了两个晚上一个下午安装&#xff0c;中间因为各种版本错误、版本不兼容报各种奇奇怪怪的错…

Windows 下使用 Docker + MySQL 安装 Wiki.js

Windows 下使用 Docker MySQL 安装 Wiki.jsIntroductionChapter 1 配置数据库Part 1 数据库安装Part 2 创建 Wiki 相关配置并修改权限Chapter 2 配置 Wiki.jsPart 1 安装Part 2 配置 WikiIntroduction Wiki 是一种在网络上开放且可供多人协同创作的系统&#xff0c;比较著名的…

【触摸屏功能测试】昆仑通态MCGS——测试通过HJ212_TCPIP驱动4G功能发送212报文

1、触摸屏功能测试 型号&#xff1a;TPC7022Ni 测试内容&#xff1a; 实现4G触摸屏&#xff0c;通过自带的4G卡向平台发送HJ212报文 2、HJ212_TCPIP 驱动说明 2.1、驱动介绍 本驱动构件用于MCGS软件,通过污染物在线监控(监测)系统数据传输标准协议向下位机数采仪发送各类指…

MCU-51:静态数码管显示

目录一、数码管介绍2.1 介绍2.2 数码管引脚定义2.3 原理图二、要用到的C语言知识2.1 数组2.2 子函数三、数码管显示3.1 单个数码管显示3.2 通过定位函数实现数码管显示四、动态数码管显示一、数码管介绍 2.1 介绍 LED数码管&#xff1a;数码管是一种简单、廉价的显示器&#…

Word表格常见设置汇总

Word表格常见设置汇总 总结一些Word中常用的关于表格的设置问题。 文章目录1.居中设置2.隔页显示表格首行设置3.边框边线粗细及显示设置4.表格斜线设置5.单元格合并与拆分设置1.居中设置 全选要居中显示部分→布局→选择居中类型。 2.隔页显示表格首行设置 选择表格→表格属性→…

idea插件之自动生成时序图(Sequence Diagram)

前言 小伙们&#xff0c;你们有没有发现&#xff0c;身边经常有这样一些人&#xff0c;看着平时没怎么干活&#xff0c;到关键时候需要展示工作成果&#xff0c;会发现这些人也有工作成果&#xff0c;甚至比辛苦在干的人可能还要多一些。按常理推测&#xff0c;这绝对不是一件科…

【小程序】案例 - 本地生活(首页)

1. 首页效果以及实现步骤 新建项目并梳理项目结构 配置导航栏效果 配置 tabBar 效果 实现轮播图效果 实现九宫格效果 实现图片布局 2. 接口地址 获取轮播图数据列表的接口 【GET】 https://www.escook.cn/slides 获取九宫格数据列表的接口 【GET】 https://www.esco…

XXE工具——XXEinjection安装与使用

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是XXE工具——XXEinjection安装与使用。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1…

直播推流神器 Kplayer 手把手教你在B站7*24h全天直播

开始前的准备工作 Linux服务器 (1)KPlayer目前仅支持Linux环境并需要满足x86_64(amd64)与aarch64(arm64)CPU架构的硬件环境上运行&#xff0c;我们已经将相关依赖库静态链接至主程序中&#xff0c;这意味着你不需要额外的安装任何的第三方库来支持KPlayer的运行。 在后续的迭代…

【数据预处理】基于Pandas的数据预处理技术【前七个任务】

文章目录一.需求分析二.需求解决2.1 本次实验以california_housing加州房价数据集为例&#xff0c;下载数据集2.2 查看数据集的描述、特征及目标数据名称、数据条数、特征数量2.3 将数据读入pandas的DataFrame并转存到csv文件2.4 查看数据集各个特征的类型以及是否有空值2.5 对…

五年经验的前端社招被问:CPU 和 GPU 有什么区别?

CPU 和 GPU 的设计目标和整体架构的区别分析&#xff0c;并在全文最后使用通俗的例子做比喻帮助理解。 首先来看 CPU 和 GPU 的百科解释&#xff1a; CPU&#xff08;Central ProcessingUnit&#xff0c;中央处理器&#xff09;&#xff1a;功能主要是解释计算机指令以及处理计…