使用scroll-view实现tabs(增加动画过渡效果)

2023-11-12

前情提要

组件:scroll-view

scroll-view可实现一个可滚动的视图区域。

scroll-view 组件有很多属性,常用的有:

  • enable-flex,是否启用flex布局,只有启用,display:flex才会生效。布尔值,默认是false,即默认不启用flex布局。
  • scroll-x,是否允许横向滚动。布尔值,默认是false,即默认不允许横向滚动。
  • scroll-into-view,自动滚动到指定元素的位置上。它的值是scroll-view的子元素的idid为字符串类型,且不能以数字开头。
  • scroll-with-animation,滚动条滚动时是否使用动画过渡。布尔值,默认值是false,即滚动时默认不使用动画过渡。

小程序项目

代码涉及的主要文件有:

  1. app.json
  2. pages/index/index.wxml
  3. pages/index/index.wxss
  4. pages/index/index.js

在这里插入图片描述

app.json

{
  "pages": [
    "pages/index/index"
  ],
  "window": {
    "navigationBarBackgroundColor": "#0149af",
    "navigationBarTitleText": "首页",
    "navigationBarTextStyle": "white"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

pages/index/index.wxml

<view class="cameraContainer">
  <view class="header">
    <input type="text" class="search" placeholder="搜一搜 这里啥都有"/>
    <image src="/static/images/search.png"></image>
  </view>
  <view class="tabContainer">
    <scroll-view class="tabs" enable-flex scroll-x scroll-into-view="{{tabId}}" scroll-with-animation>
      <view class="tab {{item.id===tabId?'active':''}}" wx:for="{{tabList}}" wx:key="id" 
            id="{{item.id}}" bindtap="changeTab">
        {{item.name}}
      </view>
    </scroll-view>
  </view>
  <view class="contentContainer">
    <view class="content">{{content}}</view>
  </view>
</view>

pages/index/index.wxss

.cameraContainer{
  padding: 10rpx;
}
.header{
  display: flex;
  align-items: center;
  border: 1rpx solid #aaa;
  border-radius: 6rpx;
  padding: 6rpx 10rpx;
}
.header image{
  width: 36rpx;
  height: 36rpx;
  padding: 0 10rpx;
}
.header .search{
  flex: 1;
  height: 36rpx;
  line-height: 36rpx;
  font-size: 26rpx;
}
.tabContainer{
  margin-top: 20rpx;
}
.tabs{
  display: flex;
  height: 50rpx;
}
.tab{
  height: 40rpx;
  line-height: 40rpx;
  margin-right: 30rpx;
  white-space: nowrap;
  font-size: 28rpx;
}
.active{
  border-bottom: 4rpx solid #1a74f1;
}
.content{
  width: 100%;
  height: 600rpx;
  line-height: 600rpx;
  text-align: center;
  background:#eee;
  color: #1a74f1;
  font-size: 64rpx;
  border-radius: 10rpx;
}

pages/index/index.js

Page({
  data:{
    tabList:[],
    tabId:'',
    content:''
  },
  onLoad(){
    this.getDataFromServer();
  },
  changeTab(e){
    const tabId = e.target.id;
    const tabObj = this.data.tabList.length && this.data.tabList.find(item => item.id === tabId) || {name:""}
     this.setData({tabId,content:tabObj.name})
  },
  getDataFromServer(){
    let result = [
      {"id": "tab_1","name": "美食"},
      {"id": "tab_2","name": "健身"},
      {"id": "tab_3","name": "电影"},
      {"id": "tab_4","name": "酒店"},
      {"id": "tab_5","name": "景点"},
      {"id": "tab_6","name": "超市",},
      {"id": "tab_7","name": "水果"},
      {"id": "tab_8","name": "生鲜"},
      {"id": "tab_9","name": "烟酒"},
      {"id": "tab_10","name": "买药",},
      {"id": "tab_11","name": "培训"},
      {"id": "tab_12","name": "养车"},
      {"id": "tab_13","name": "家居"},
      {"id": "tab_14","name": "宠物"},
      {"id": "tab_15","name": "游戏"}
    ]
    this.setData({
      tabList:result,
      tabId:result.length && result[0].id || '',
      content:result.length && result[0].name || ''
    })
  }
})

相关链接

  1. 使用scroll-view实现tabs
  2. 滑块视图的实现
  3. 使用scroll-view实现滑块视图可能遇到的问题及其解决方法
  4. 微信小程序中给event对象传递数据
  5. flex布局:flex-basic flex-grow flex-basis
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用scroll-view实现tabs(增加动画过渡效果) 的相关文章

  • 水平 recylerview 与 viewpager 滚动同步滚动

    我有一个带有一些值的视图寻呼机 与 recyclerview 上方的 recyclerview 的计数相同 就像 tablayout 一样 我已经使用 snap helper 实现了该功能 并且一切正常 我唯一想要的就是我想将 recycl
  • 如何禁用和启用 android ScrollView 上的滚动? [复制]

    这个问题在这里已经有答案了 我是一名android开发人员 我也想使用ScrollView 这个ScrollView需要一段时间禁用滚动 一段时间启用滚动 但是我无法禁用滚动 如何实现它 请帮助我 我还尝试使用一些代码 例如 s fullp
  • Scroll Rect 手动滚动脚本 Unity C#

    我想为 Unity 编写一个 C 脚本 使滚动视图在按 UP 键时向上滚动 在按 DOWN 键时向下滚动 只需使用 ScrollRect horizontalNormalizedPosition value range 0 to 1 or
  • 获取webview的最大滚动值

    我知道在 Scrollview 中您可以访问scrollView getMaxScrollAmount 但是我似乎不明白如何在 webview 上调用它 我尝试作弊来获取有关它的信息 这是我尝试过的 该方法应该做的是 它不断滚动特定的量 并
  • 如何将滚动视图连接到TableView Cell中的页面控件

    我有一个用滚动视图和页面视图控件设计的自定义单元格 我将其显示如下 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath inde
  • 禁用 Xamarin 表单并显示活动指示器

    我有一个使用滚动视图的 Xamarin 表单 我试图在顶部显示一个活动指示器 因为中间有一个 ListView 但是当用户向下滚动时 不会显示加载 因此 我需要帮助来禁用页面并在弹出窗口中显示某些 z index 处的加载 如果你想在屏幕加
  • 操纵事件和平移模式

    我正在开发一个用于触摸设备的 WPF 我面临一个奇怪的问题 我的 XAML 结构是
  • ScrollView 中的 ListView 在 Android 上不滚动

    我在滚动时遇到问题ListView里面一个ScrollView 我有一个 Activity 顶部有一些 EditText 然后是一个带有两个选项卡的选项卡主机 每个选项卡都有一个 ListView 当 EditText 视图聚焦时 软键盘会
  • 滚动视图内部滚动视图

    我知道 Google 的人要求我们不要将 Scrollable 视图放入另一个 Scrollable 视图中 但是他们有任何官方声明指示我们不要这样做吗 试试这个 Note Here parentScrollView意味着外层ScrollV
  • 滚动视图内的地图 Recyclerview 在滚动时显示黑色闪烁背景

    我在 recyclerview 行中使用了地图视图 我已附上屏幕截图 滚动地图时显示黑色闪烁背景 适配器代码 Override public RecyclerView ViewHolder onCreateViewHolder ViewGr
  • 如何在本机反应中同步两个滚动视图?

    我的要求是创建一个具有固定标题和第一列的表格 表格数据将在水平和垂直方向上滚动 for this I have used 3 scrollviews following gif will make it clear 第一个滚动视图是标题名称
  • 如何在另一个滚动视图中滚动ListView

    我有个问题 我有一个布局 其滚动视图位于三个列表视图 A B C 上 我想要滚动孔布局以及滚动每个列表视图 Problem 当布局滚动时 列表视图不会滚动 如果我删除滚动布局 则列表会滚动 但布局不会滚动 可能的解决方案是什么 使用以下方法
  • 如何将 ExpandableListView 放入 ScrollView 中而不使其折叠?

    我想在 ScrollView 中使用 ExpandableListView 与其他视图 但我在 ExpandableListView 中遇到了自滚动器的问题 我尝试禁用它 但问题在于 ExpandableListView 的高度及其内部布局
  • 具有相同高度的 SwiftUI HStack 元素

    我希望两个按钮具有相同的高度 类似于Equal HeightUIKit 中的约束 不想指定框架 让 SwiftUI 处理它 但 HStack 中的元素应该具有相同的高度 按钮应具有相同的宽度和高度 并适应较长的文本并增加其框架大小 两个按钮
  • 无法将搜索栏拖动到滚动视图内

    如果这个问题在其他地方得到了回答 我深表歉意 我找不到任何有同样问题的人 我将 SeekBar 添加到位于嵌套 ScrollView 内的relativelayout 但是 我无法拖动搜索栏的拇指 我可以沿着其路径单击来更改其值 但无法拖动
  • 当子视图的内容更改时,滚动视图不会调整大小

    我有一个WebView在 的里面ScrollView 内容为WebView当显示不同的html页面时动态变化 我有以下问题 例如我有A html and B html 内容为B html大于A html 所以页面更长 When WebVie
  • 如何使用 SwiftUI 在 ScrollView 中选择一个项目?

    我想要完成的是有一个项目循环 我可以点击其中一个项目 一旦点击它就会以编程方式变得更大 这是我的代码和到目前为止的结果 struct ContentView View State var emojisArray State var sele
  • ScrollView 中的 ViewPager

    我需要有一个ViewPager里面一个ScrollView but ViewPager只是在进入时不会出现ScrollView 当我不使用时一切正常ScrollView 我在 stackoverflow 或其他网站上看到了一些类似的问题 所
  • jQuery Mobile 只滚动内容,而不是整个页面

    我正在使用 jQuery Mobile 和 Phonegap 构建一个应用程序 现在 当我获得一个页面并需要滚动时 jQuery Mobile 会滚动整个页面 而不是内容 滚动条应该仅位于内容部分所在的位置 但看起来滚动条会滚动整个页面 它
  • Android 滚动视图在添加文本时自动滚动

    我在 Android 应用程序中有一个包含文本视图的滚动视图 此文本视图将按设定的时间间隔连续附加文本 滚动有效并且文本添加得很好 但我想做的是在添加文本时让滚动视图自动向下滚动 当新文本添加到底部时 它会自动向下滚动以匹配 而旧文本会在顶

随机推荐

  • 产品经理入门——必备技能之【产品运营】

    文章目录 一 基础介绍 1 1 用户生命周期 产品生命周期 1 2 运营的目的 1 3 运营的阶段 1 4 运营的主要工作 海盗模型 二 AARRR模型 2 1 Acquisition 拉新 2 2 Activision 促活 2 3 Re
  • 让所有GUI都自动化-PyAutoGUI(GUI自动化工具)

    目录 1 前言 2 简介 3 安装 4 常用函数 5 保护措施 6 鼠标函数 7 键盘函数 8 消息弹窗函数 9 截屏函数 10 示例 1 前言 在使用 Selenium 进行自动化测试时 鼠标事件可以用 ActionChains 类 键盘
  • 深度学习三:分类问题之概率生成模型

    分类问题 概率生成模型 课程例子 通过宝可梦的一些属性能不能预测出这个宝可梦属于哪个类型 用于分类的训练集数据 一直宝可梦的属性和他所属于的种类 如果考虑用线性回归的方式来做这件事情 如果输入数据 通过函数得到的值接近1 我们就说这只宝可梦
  • 自定义类型<结构体>

    目录 1 结构的基础知识 2 结构的声明 3 特殊的声明 4 结构的自引用 5 结构体变量的定义和初始化 6 结构体内存对齐 7 修改默认对齐数 8 结构体传参 1 结构的基础知识 我们之前简单介绍过结构体 可以保存不同数据类型 我们基本数
  • 模拟电路设计(34)---脉宽调制型开关电路

    在开关稳压电源中 直流变换器中的功率晶体管工作在开关状态 目前开关电源的工作频率在几百kHz 有些甚至已经到了MHz量级 如下图所示是DC DC开关变换器的原理框图 DC DC开关变换器的原理框图 开关电源的实现方式有很多种 如最传统的脉宽
  • N32应用笔记1:keil新建工程,编译与烧录

    N32应用笔记1 keil新建工程 编译与烧录 本文目的 前置准备 N32简介 N32G452VEL7简介 我的印象 工程建立流程 1 固件包下载和安装 2 新建工程文件的文件夹 3 keil MDK新建工程 4 向工程分组添加必要的文件
  • windows网络编程-结构体说明

    1 sockaddr in struct sockaddr in short sin family u short sin port 端口 struct in addr sin addr IP地址 long类型 4字节 char sin z
  • 7 SpringBoot整合RocketMQ发送单向消息

    发送单向消息是指producer向 broker 发送消息 执行 API 时直接返回 不等待broker 服务器的结果 这种方式主要用在不特别关心发送结果的场景 举例 日志发送 RocketMQTemplate给我们提供了sendOneWa
  • 通过Hyperic-hq产品的基础包sigar.jar来实现服务器状态数据的获取

    通过Hyperic hq产品的基础包sigar jar来实现服务器状态数据的获取 Sigar jar包是通过本地方法来调用操作系统API来获取系统相关数据 Windows操作系统下Sigar jar依赖sigar amd64 winnt d
  • 安卓培训开发!通宵都要看完这个Android关键技术点,看这一篇就够了!

    前言 上回承诺过大家 一定会出 HTTP 的系列文章 今天终于整理完成了 作为一个 web 开发 HTTP 几乎是天天要打交道的东西 但我发现大部分人对 HTTP 只是浅尝辄止 对更多的细节及原理就了解不深了 在面试的时候感觉非常吃力 这篇
  • C/C++文件操作、输入输出备忘

    1 C 文件操作 1 1 普通ascii字符 1 cin gt gt 结束条件 Enter Space Tab键 读取结束条件 while cin gt gt value cin gt gt 后便可以跟整型 浮点型 字符串 string c
  • TensorFlow中读取图像数据的三种方式

    Update on 2019 06 18 从tesorflow1 11之后 大概是这个版本号 谷歌推出了tf data模块来读取数据 甚至在tensorflow2 0中 取消了数据队列管道 所以我建议大家学习tf data模块 未来我也会做
  • JavaWeb——Servlet详解

    文章目录 什么是Servlet Servlet及其子类 Servlet中常用方法 init service distory Servlet的生命周期 Servlet初始化时机 钝化和活化 Http协议 Session 会话跟踪技术 常用AP
  • Content-encoding: gzip 请求接口响应结果带有乱码解决办法

    问题 在请求接口时 接口响应结果乱码 通过平常的编码格式转化来解码不能解决 观察接口的响应内容编码为Content encoding gzip 解决办法 public static String uncompressString Strin
  • PostgreSQL 系统参数调整及并行设置(转)

    转自 https yq aliyun com teams 5 OS 准备 yum y install coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline devel z
  • 如何写好代码?

    想要的都拥有 失去的都释怀 2020鼠于你 文章目录 1 写代码容易吗 2 设计模式 3 软件生命周期 4 技术业务架构 5 轮子 6 开源 7 真相 1 写代码容易吗 代码容易写 也不容易写 但做人不能一直太中立 那我选择好代码不容易写吧
  • 【Linux】make和makefile详解

    在linux系统上编译大一点的项目时 会用到make makefile文件 1 make与makefile 利用make工具 我们可以将大型的开发项目分解成为多个更易于管理的模块 对于一个包括几百个源文件的应用程序 使用make和makef
  • 卷积神经网络之计算机视觉

    深度学习给机器视觉带来了巨大的进步 深度学习和机器视觉能够帮助机器分清汽车和周围的行人 并且帮助汽车避开他们 机器视觉而且能够使得人脸识别更加高效和精准 计算机视觉标志着新兴应用的产生 通过这些工具 你能产生新的产品和应用 其次即使你未在机
  • 区块链技术栈-脚本系统

    脚本系统 脚本系统在区块链中是个比较抽象的概念 也是其中一个很重要的功能 可以说区块链系统之所以能形成一个有价值的网络 依靠的就是脚本系统 他就像是一个发动机一样 驱动着区块链系统不断进行着各种数据的收发 所谓脚本 就是指一组程序规则 在区
  • 使用scroll-view实现tabs(增加动画过渡效果)

    文章目录 前情提要 组件 scroll view 小程序项目 app json pages index index wxml pages index index wxss pages index index js 相关链接 前情提要 组件