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

这篇具有很好参考价值的文章主要介绍了移动端Swiper的一些尝试(中间完整,两边有内容,循环展示)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

移动端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的一些尝试(中间完整,两边有内容,循环展示)

于是思考对两侧显示部分滑动内容的这种情况,采取应用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更新的方法吧。文章来源地址https://www.toymoban.com/news/detail-493769.html

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

到了这里,关于移动端Swiper的一些尝试(中间完整,两边有内容,循环展示)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【vue+Swiper】vue中使用swiper缩略图,展示一张大图及n张小图,点击小图切换不同的大图展示,完整代码

    效果: 这是在swiper官网上找的示例,swiper太强大了,有非常多不同的示例,有api,有教程,还可以下载示例代码。 但是第一次使用,研究这个缩略图的实现还是花了几个小时,好在实现了。 swiper官网请戳这里 安装 将swiper封装成组件可以复用,在components公共组件文件夹中新增

    2024年02月05日
    浏览(34)
  • ChatGPT +工业机器人/自动驾驶控制器的一些尝试

    ChatGPT 的功能目前已扩展到机器人领域,可以用语言直观控制如机械臂、无人机、家庭辅助机器人等的多个平台。这会改变人机交互的未来形式吗? 你可曾想过用自己的话告诉机器人该做什么,就像对人说话那样? 比如说,只要告诉你的家庭助理机器人「请帮我热一下午餐」

    2023年04月08日
    浏览(37)
  • uniapp中swiper的大坑,在swiper-item中嵌套video在移动端无法实现上下滑动的,要用nvue代替,从而实现抖音滑视频效果

    想做一个抖音滑屏切换视频的效果,结果。。。。。 研究了一天,发现在swiper-item中嵌套视频时,移动端只能滑动切换背景,视频在原位置是不会动的。。。。但是在h5端和小程序端可以完美运行,这就很让人生气了:  在移动端的时候,就会出现虽然切换到第二个视频了,

    2023年04月09日
    浏览(47)
  • uniapp 横向滑动list(不同内容)分部问题:scroll-view,swiper overflow-x

    横向滑动list,可使用标签:   1:scroll-view 2:swiper 3:overflow-x   正常来讲横向滑动的话 ,需要特殊设置,只用view 设置display:flex,的话 无法横向滑动,右边的就会隐藏。那设置横向的话 下面三种方式。 一:scroll-view 除了官网说的scroll-view的 横向,纵向,横线滑动,这里遇

    2024年02月08日
    浏览(25)
  • 删除了一些重要的文件、图片和数据?可尝试这10个安卓数据恢复软件。

    您最近是否删除了一些重要的文件、图片和数据?尝试这些适用于计算机和移动设备的最佳免费 Android 数据恢复软件,以快速恢复所有重要文件和文档。 格式化、擦除、文件损坏、删除和其他类型的文件损坏都是相当常见的问题。由于意外或仅仅由于无知而遇到此类问题可能

    2024年01月18日
    浏览(43)
  • gin框架内容(三)--中间件

    gin框架内容(三)--中间件 Gin框架允许开发者在处理请求的过程中,加入用户自己的函数。这个函数就叫中间件,中间件适合处理一些公共的业务逻辑,比 如登录认证、权限校验、数据分页、记录日志、耗时统 计等 即比如,如果访问一个网页的话,不管访问什么路径都需要

    2024年02月15日
    浏览(35)
  • 中间件——爬取网易新闻内容

    中间件: 下载中间件 位置:引擎和下载器之间 作用:批量拦截到整个工程中所有的请求和响应 拦截请求: UA伪装:process_request 代理IP:process_exception:return request 拦截响应: 篡改响应数据,响应对象 需求:爬取网易新闻中的新闻数据(标题和内容) 1.通过网易新闻的首页解析

    2024年02月07日
    浏览(23)
  • 【Java SE】循环一些基本练习

       

    2024年02月05日
    浏览(26)
  • 《使用循环做一些练习》---C语言

    目录 前言: 1.练习专题 1.1打印1-100之间的奇数 1.2计算n的阶乘 1.3计算到达n阶乘的前m个阶乘相加 1.4演示字符串动态变化的效果 2.goto语句 ❤博主CSDN:啊苏要学习   ▶专栏分类:C语言◀   C语言的学习,是为我们今后学习其它语言打好基础,C生万物!   开始我们的C语言之旅吧

    2024年02月01日
    浏览(22)
  • Java Excel 打开文件报发现“xx.xlsx”中的部分内容有问题。是否让我们尽量尝试恢复问题解决

    发现“文件.xlsx”中的部分内容有问题。是否让我们尽量尝试恢复? 1、后端的导出接口写的不对,又返回流数据,又返回响应体数据,导致前端将流数据和响应体数据都下载到了excel文件中。  解决办法: 接口仅返回流数据即可。

    2024年02月13日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包