【uniapp小程序】使用swiper实现页面内部左右滑动的切换

这篇具有很好参考价值的文章主要介绍了【uniapp小程序】使用swiper实现页面内部左右滑动的切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

具体效果:手指在页面左右滑动会切换tab

uniapp左右滑动切换页面,uni-app,小程序,前端

 背景:项目里原有代码复制,去除一些功能,只留一个外壳,目的是为了以后套套套

代码:

<template>
  <div class="page" style="overflow:hidden">
    <!-- 标题栏 -->
    <div class="nav">
      <div
        @click="toggleSearch(item.value)"
        :class="['nav_item', compleStatus == item.value ? 'selected' : '']"
        v-for="(item, index) in titleList"
        :key="index"
      >
        <div class="nav_title">
          {{ `${item.title}` }}
        </div>
        <div class="task_tabs_line_wrapper">
          <div
            class="task_tabs_line"
            :style="{
              width: 100 / titleList.length + '%',
              transform: `translateX(${tabsIndex * 100}%);`
            }"
          >
            <div class="inside_line"></div>
          </div>
        </div>
      </div>
    </div>
    <div class="main">
      <!-- 列表 -->
      <swiper
        class="taskList_swiper"
        @change="changeSwiper"
        :current="tabsIndex"
      >
        <swiper-item class="taskList_swiper_item" v-for="(i, index) in titleList" :key="index">
          <div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
            <div>内容区域</div>
          </div>
          <!-- <scroll-view
            class="content"
            scroll-y="true"
            refresher-enabled
            :scroll-top="scrollTop"
            :refresher-triggered="triggered"
            @scrolltolower="lower"
            @refresherrefresh="onRefresherrefresh"
          >
            <view class="page_wrap">
              <div class="list">
                <template>
                  <div>内容区域</div>
                </template>
              </div>
            </view>
          </scroll-view> -->
        </swiper-item>
      </swiper>
    </div>

    <!-- 学习中心 -->
    <studyCenter v-if="false" />
  </div>
</template>

<script>
import studyCenter from '../study-center.vue'
export default {
  name: 'advanced-page',
  components: {
    studyCenter
  },
  data() {
    return {
      titleList: [
        // 标题列表
        {
          title: '白银级', // 标题名
          value: 0, // 标题编号
          count: 0
        },
        {
          title: '黄金级',
          value: 1,
          count: 0
        },
        {
          title: '铂金级',
          value: 2,
          count: 0
        },
        {
          title: '钻石级',
          value: 3,
          count: 0
        },
        {
          title: '王者级',
          value: 4,
          count: 0
        }
      ],
      tabsIndex: 0, // 轮播图当前所在滑块的 index
      compleStatus: 0, // 表示所选的nav
      scrollTop: 0, // 滚动过程中离顶端的距离
      taskList: [], // 活动列表
    }
  },
  methods: {
    // 点击切换标题的回调
    toggleSearch(val) {
      this.tabsIndex = val
      this.compleStatus = val
    },
    // 左右滑动切换标题的回调
    changeSwiper(e) {
      let val = e.target.current
      this.taskList = []
      this.toggleSearch(val)
      console.log('-----------获取数据-----------')
    }
  }
}
</script>

<style lang="scss" scoped>
.nav {
  border-bottom: 2rpx solid rgba(31, 35, 41, 0.1);
  position: fixed;
  z-index: 99;
  background: #fff;
  padding-top: 20rpx;
  padding-bottom: 18rpx;
  width: 100%;
  display: flex;
  height: 104upx;
  .nav_item {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    .nav_title {
      font-size: 28rpx;
      font-family: PingFangSC-Medium, PingFang SC;
      font-weight: bold;
      color: #8f959e;
      line-height: 40rpx;
    }
    .task_tabs_line_wrapper {
      position: absolute;
      bottom: 16rpx;
      left: 0;
      height: 4rpx;
      width: 100%;
      .task_tabs_line {
        height: 4rpx;
        transition: all 0.2s ease;
        .inside_line {
          width: 60rpx;
          margin: 0 auto;
          height: 4rpx;
          background: #3865f3;
          border-radius: 4rpx;
        }
      }
    }
  }
  .selected {
    .nav_title {
      color: #1f2329;
    }
  }
}
.main {
  position: relative;
  margin-top: 104rpx;
  background-color: rgb(243, 182, 182);

  .taskList_swiper {
    width: 100%;
    height: calc(100vh - 168rpx);
    .page_wrap {
      min-height: 100%;
      padding: 24rpx 20rpx 20rpx 20rpx;
    }
    .content {
      height: calc(100vh - 128rpx);
    }
  }
}
</style>

注意:scroll-view标签内实现上来加载、下来刷新。因为现在页面用不到,所以并没有保留文章来源地址https://www.toymoban.com/news/detail-528590.html

到了这里,关于【uniapp小程序】使用swiper实现页面内部左右滑动的切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uniapp 微信小程序实现监听屏幕左右滑动实现tab标签切换效果

            实际的项目开发之中,有很多所谓的奇葩需求,当工程量相对较大的时候去更换组件会显得特别麻烦和费时。我这次的需求因为某些特殊原因,更换组件后也无法实现需要达到的效果,所以最后只能监听滑动事件,相信你看了我的代码也能轻松搞定!          

    2024年02月14日
    浏览(41)
  • Uni-app实现左右滑动页面内容切换(兼容微信小程序)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档         前言         整体思路         一、HTML部分         二、Script部分         三、Style部分           (先声明哦我可不是偷懒,只是想学术借鉴一下)因为最近有在做左右滑动功能,

    2024年02月07日
    浏览(57)
  • 微信小程序、uniapp使用touchstart和touchmove左右滑动删除。以及解决上下抖动问题。

    展示效果图直接上代码 如果要修改里面内容直接从content这个类修改就行。 直接复制粘贴就行。拿上直接用。 如果遇到滑动会导致上下抖动用这个解决。给最外层得一个view标签加一个样式。 这样的话滑动会有阴影,但不会抖动,可以尝试一下看看,如果哪位能人能解决,就

    2024年02月11日
    浏览(103)
  • 小程序商品分类页面滑动左右联动

    系列文章目录 前言 一、vtabs是什么? 二、使用步骤 1.json引入 2.wxml中使用 3.js中代码 总结 商品分类页面,左边分类及右边商品左右联动 因为微信小程序scroll-view没有h5锚点控制联动,并且需求是根据整个页面的滚动条来控制联动,所以使用了页面滚动事件onPageScroll来获取页面

    2024年02月12日
    浏览(32)
  • 微信小程序———同一页面内左右滑动切换内容显示

    一、微信小程序事件  由于首先介绍一下微信小程序中的事件,可选择快速略过或者直接进去之后的重点内容 一、什么是事件 事件是视图层到逻辑层的通讯方式。 事件可以将用户的行为反馈到逻辑层进行处理。 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对

    2024年02月03日
    浏览(48)
  • Vue3自定义简单的Swiper滑动组件-触控板滑动&鼠标滑动&左右箭头滑动-demo

    代码实现了一个基本的滑动功能,通过鼠标按下、鼠标松开和鼠标移动事件来监听滑动操作。 具体实现逻辑如下: 在  onMounted  钩子函数中,我们为滚动容器添加了三个事件监听器: mousedown  事件:当鼠标按下时,设置  control.isDown  为  true ,记录鼠标起始位置  control.

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

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

    2023年04月09日
    浏览(47)
  • 微信小程序中 使用swiper 滑动切换一级、二级导航

    其中遇到一个大问题使我放弃了swiper的使用,swiper有一个固定高度不太好处理,最终使用了touch事件去处理触摸移动,之后会再写一篇文章记录,处理不复杂的话还是可以用swiper的 效果根据手指滑动切换二级导航、二级切换完成切换一级导航   其中遇到一个大问题使我放弃了

    2024年02月17日
    浏览(32)
  • uniApp监听左右滑动事件

    监听左右滑动事件的步骤 1. 添加需要监听滑动事件的元素 在你的页面中,添加需要监听滑动事件的元素。这可以是一个 view 、 swiper 或其他组件,取决于你的需求。例如: uniapp的滑动事件我也是感觉挺不错的,关键是能够实现局部滑动,这一点就非常的棒。 2. 编写事件处理

    2024年02月09日
    浏览(24)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包