微信小程序顶部搜索栏随界面滑动变换

2023-10-30

初始状态:

目标状态:

 

效果:在界面向下滑动的时候,根据滑动的距离,缩短搜索框,并向上滑动

第一步:使用小程序的生命周期onPageScroll接听界面滚动,并获取下滑距离

                因为在本案例中,我胶囊顶部与默认状态下的搜索框顶部距离为74rpx,所以,我只需要0~74这个区间的内容,并拿到这个值(这个值是生命周期onPageScroll()自带的)

//监听界面滚动
  onPageScroll(e){
    //这个pxAndRpx是我计算的rpx和px的比例,如无必要也可以不用,直接默认为2
    var mrtop = e.scrollTop * this.data.pxAndRpx
    //滑动距离小于74时
    if ( mrtop<=74||this.data.marginTop<=74) {
      this.setData({
        marginTop : mrtop>74?74:mrtop
      })
    }
    // console.log("jhkkjh",this.data.marginTop);
  },

第二步:

在wxml中使用

//上方文字
<view class="addressClass" style="margin-top: {{胶囊属性中的距顶高度}};opacity: {{marginTop<=37?'1':(74-marginTop)/74}}; z-index: 100;">
    <text class="addressText">目标文字</text>
</view>


//搜索框
<view class="searchClass" style="height: {{胶囊高度}}rpx;margin-right: {{marginTop>='37'?(+37*6):(marginTop*6)}}rpx;margin-top: {{marginTop>='37'?(初始状态下的搜索框距顶高度-marginTop):(初始状态下的搜索框距顶高度)}}rpx;z-index: 101;">
我是搜索框
</view>

        这种效果实现的搜索框变换动画为,界面向上滑动,搜索框上下先不变,先由右向左缩短,达到一定程度后,在向上滑动。

还有一种效果

//上方文字
<view class="addressClass" style="margin-top: {{胶囊属性中的距顶高度}};opacity: {{marginTop<=37?'1':(74-marginTop)/74}}; z-index: 100;">
    <text class="addressText">目标文字</text>
</view>


//搜索框
<view class="searchClass" style="height: {{胶囊高度}}rpx;margin-right: {{marginTop>='74'?(74*3):(marginTop*3)}}rpx;margin-top: {{marginTop>='74'?(初始状态下的搜索框距顶高度-74):(初始状态下的搜索框距顶高度-marginTop)}}rpx;z-index: 101;">
我是搜索框
</view>

这种效果实现的搜索框变换动画为,边向上滑,边由右向左缩短,同步进行。

搜索框

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序顶部搜索栏随界面滑动变换 的相关文章

  • TRON节点验证交易的时间容忍度

    这篇文章主要介绍深入分析TRON的节点配置文件中vm minTimeRatio和vm maxTimeRatio这两个标志的意义 这两个标志的表示的是节点 包括sr和fullnode 验证区块中智能合约交易的时间比例 时间容忍度 注 sr节点
  • 【java】swagger中api接口传多个参数 @ApiImplicitParam和@ApiImplicitParams

    目录 1 ApiImplicitParam 2 ApiImplicitParams 3 Spring Boot项目中集成Swagger knife4j并自定义访问路径 swagger常用注解使用说明 1 ApiImplicitParam 作
  • PI闭环的FPGA实现

    PID闭环的FPGA实现 1 原理分析 最近小张同学在做项目的时候发现PI闭环的FPGA学习资料很少 秉持着 既然没有轮子 那么自己就造一个的原则 于是乎自己写了个PI的Verilog程序 FPGA中实现PI闭环与DSP STM32 arm
  • docker安装kibana报Kibana server is not ready yet解决

    今天通过docker安装了es集群 想再起一个kibana容器进行管理 安装还算方便 直接联网用docker pull与es同版本的kibana镜像下来启动容器即可 奈何用浏览器访问http 127 0 0 1 5601 时一直报Kiban
  • java synchronized用法

    总结一下synchronized的用法 1 修饰静态方法 2 修饰实例方法 3 修饰代码块 一 首先看一下修饰静态方法和修饰实例方法的区别 直接上代码 synchronized 修饰实例方法 修饰静态方法 public class Sync

随机推荐

  • 第十章 Flink

    1 Flink初识 1 1 数据处理架构的发展和演变 流处理和批处理 流处理对应实时计算 批处理对应离线计算 传统事务处理 传统的事务处理 就是最基本的流处理架构 缺点 传统事务处理对表和数据库的设计要求很高 当数据规模越来越庞大 系统越来
  • python中os模块中文帮助文档

    python中os模块中文帮助文档 翻译者 butalnd 翻译于2010 1 7 2010 1 8 个人博客 url http butlandblog appspot com url 注此模块中关于unix中的函数大部分都被略过 翻译主要
  • kafka面试题02

    kafka 消费者是否从指定偏移量开始消费 可以 通过seek指定偏移量后再开始消费 客户端操作kafka消息是采用poll模式 还是push模式 kafka最初考虑的问题是 customer应该从brokes拉取消息还是brokers将消
  • topaz sharpen ai怎么设置为中文

    topaz sharpen ai是一款非常强大的图片锐化处理工具 采用了先进的人工智能技术 即使在手持 夜间或在浅景深拍摄时也可以创建清晰的图像 但该软件默认是英文语言 不支持简体中文语言 让国内许多用户都无从下手 所以小编带来了topaz
  • Oracle的load_balance和failover

    jdbc oracle thin description TRANSPORT CONNECT TIMEOUT 1 address list load balance off failover on address protocol tcp
  • RC并联电路常见应用总结

    阻容串联电路应用可以参考以下链接 链接 https blog csdn net weixin 45633643 article details 107740111
  • 十分钟掌握Keras实现RNN的seq2seq学习

    作者 Francois Chollet 编译 雁惊寒 seq2seq是一种把序列从一个域 例如英语中的句子 转换为另一个域中的序列 例如把相同的句子翻译成法语 的模型训练方法 目前有多种方法可以用来处理这个任务 可以使用RNN 也可以使用一
  • 使用OpenCV和Python,OCR识别数字

    使用OpenCV和Python OCR识别数字 1 效果图 2 原理 2 1 什么是七段显示器 2 2 识别数字步骤 3 源码 参考 这篇博客将演示如何使用OpenCV和Python识别图像中的数字 该方法只适用于七段显示器 通常在数字闹钟
  • 【ChatGPT】如何让 ChatGPT 不再频繁报错,获取更加稳定的体验?

    文章目录 一 问题描述 二 方案1 使用 OpenAI API Key 来访问 ChatGPT 三 方案2 安装 Chrome 插件 3 1 介绍 3 2 安装步骤 3 2 1 插件 脚本安装 3 2 2 解读功能 一 问题描述 最近一段时
  • uni-app真机运行报错:plus is not defined

    前言 使用un app开发Android和IOS原生应用 在浏览器中调试时 报错 plus is not defined 原因 plus是5 Runtime的内部对象 普通浏览器里没有plus环境 只有HBuilder真机运行 打包后 或流
  • Pycharm安装教程以及Pycharm汉化教程,超级详细

    1 下载安装包 去pycharm官网下载安装包pycharm官网 步骤如下 下载完成后点击安装 2 点击安装包开始安装 到此pycharm安装完成 3 开始使用pycharm 点击安装好的pycharm进入 创建项目 选择项目路径 选择需要
  • openlayer 5 MultiLineString 渲染多颜色

    预览图 public GetTraffficSpeed Observable
  • 使用three.js导入外部glb模型实现一个nft产品

    nft数字藏品大火 各家公司都推出自己的app和小程序 那么炫酷的3D藏品到底如何实现的呢 我们来一探究竟 需求背景 随着各家数字藏品项目上线 我们团队也紧随潮流打算在短期内开发一款数字藏品的产品 主要有哪些需求呢 当然就是别人有什么我们也
  • Postgresql顺滑升级步骤(11升级到14)

    首先下载pgsql14的源码包进行安装 yum install postgresql14 y yum install postgresql14 server y 附带安装 yum install postgresql14 libs yum
  • python 集合操作 set

    发现在用python进行机器学习数据挖掘的时候经常用到set 在网上收了一些资料 http blog csdn net business122 article details 7541486 http www cnblogs com xia
  • 收藏!一线工程师超全总结AI部署以及工业落地的学习方法

    本文重点谈谈学习AI部署的一些基础和需要提升的地方 这也是老潘之前学习 或者未来需要学习的一些点 这里抛砖引玉下 也希望大家能够提出一点意见 AI部署 AI部署这个词儿大家肯定不陌生 可能有些小伙伴还不是很清楚这个是干嘛的 但总归是耳熟能详
  • .gclient下载更新webrtc项目工程文件受约束的设置和文件

    python view plaincopy gclient sync force Error Your gclient file seems to be broken The requested URL is different from
  • 软件工程-软件开发的工程思维

    软件工程 软件开发的工程思维 目录 软件工程 软件开发的工程思维 前言 什么是软件工程 定义 出现的背景 软件工程核心知识 与项目管理的区别 软件工程的目标 为什么需要软件工程 如何做好软件工程 原则 工程思维 软件开发生命周期模型 敏捷开
  • CMake学习之message

    文章目录 一 message的基础使用 二 message高级使用 指定日志级别 三 message Reporting checks查找库日志 一 message的基础使用 打印日志 message 参数1 message 参数1 参数2
  • 微信小程序顶部搜索栏随界面滑动变换

    初始状态 目标状态 效果 在界面向下滑动的时候 根据滑动的距离 缩短搜索框 并向上滑动 第一步 使用小程序的生命周期onPageScroll接听界面滚动 并获取下滑距离 因为在本案例中 我胶囊顶部与默认状态下的搜索框顶部距离为74rpx 所