微信小程序第六篇:元素吸顶效果实现

2023-11-20

 系列文章传送门:

微信小程序第一篇:自定义组件详解

微信小程序第二篇:七种主流通信方法详解

微信小程序第三篇:获取页面节点信息

微信小程序第四篇:生成图片并保存到手机相册

微信小程序第五篇:页面弹出效果及共享元素动画

话不多说,先看效果:

这种效果在我们日常开发中是非常常见的,下面让我们结合代码一起来看看是如何实现的吧。

js 部分数据:

data: {
    content: {
      value: '啦啦啦',
      isShow: false
    },
    message: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
    mainHeight: app.globalData.wHeight - app.globalData.headerHeight
  },
 

wxml部分代码: 

<template name="scrollData">
    <view style="height: 100rpx; width: 90%;margin: 20rpx auto;background-color: rgb(172, 212, 219);">
        {{item}}
    </view>
</template>

<view>
    <header bg="{{'transparent'}}">YinJie</header>
    <view style="height: 60rpx;width: 100%;background-color: pink;text-align: center;font-size: 22rpx;position: fixed;z-index: 999;"
      wx:if="{{content.isShow}}"
    >
        {{content.value}}
    </view>  
    <scroll-view class="" scroll-y="true" bindscroll="scroll" enable-flex="true" style="height: {{mainHeight}}rpx;">
        <view style="height: 400rpx; width:90%; margin: 0 auto; background-color: grey">
        </view>
        <view style="height: 60rpx;width: 100%;background-color: pink;text-align: center;font-size: 22rpx;margin-top: 20rpx;">
            啦啦啦
        </view>
        <template is="scrollData" data="{{item}}" wx:for="{{message}}" wx:key="index"></template>
    </scroll-view>
</view>

我们要实现“啦啦啦”所在的元素块在移动到它的时候吸顶,那必然需要结合 scroll-view 标签的 bindscroll 属性实现,吸顶的关键就是我们在header标签下写一个和要吸顶元素一模一样的wxml元素。通过 wx:if 来控制它的显示与隐藏,当页面移动到“啦啦啦”所在位置的时候显示这个元素,并且让他的 position 为 fixed,这样就巧妙实现了元素的吸顶效果。

  scroll: function(e) {
      if (e.detail.scrollTop >= 216) {
        if (!this.data.content.isShow) {
          this.setData({
            'content.isShow': true
          })
        }
      } else {
        if (this.data.content.isShow) {
          this.setData({
            'content.isShow': false
          })
        }
      }
  },

当页面距离顶部高度超过 216 也就是 “啦啦啦” 所在元素高度时,就让 header 下的元素显示。反之,当页面距离顶部高度小于 216 时再让他隐藏就可以啦!

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

微信小程序第六篇:元素吸顶效果实现 的相关文章

  • 递归寻找第n位数字

    编写递归函数digit n j 返回整数n的从右边开始的第j位数字 首先来看非递归法 只需用n 10 j 1 10即可 include
  • linux连接Xshell

    一 下载和安装Xshell 1 下载Xshell 官网下载地址 有时需要科学上网 https www netsarang com en all downloads 点击下载 教育版 2 安装 和软件安装方式一样 二 Xshell连接linu
  • 快乐数(Java)

    编写一个算法来判断一个数 num 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果 可以变为 1 那么这个数就是快乐数
  • 瀑布流布局2

    要实现瀑布流布局中让图片先排满第一行再排第二行 你可以使用 CSS 的多列布局 CSS multi column layout 来控制 目前你的布局使用了 column count 和 column gap 来定义列数和列之间的间隙 但这会
  • 记一次ElasticSearch 更改 mapping 字段类型的过程

    我的个人博客 逐步前行STEP 首先 es不支持直接更改mappinng 所以 更改 mapping 实质上是重建索引 操作步骤如下 1 为当前这个索引old index设置一个别名my index curl XPOST localhost
  • 数据类型分类

    分为四种类型
  • Java垃圾回收机制(GC)

    一 要回收哪些区域 在JVM内存模型中 有三个是不需要进行垃圾回收的 程序计数器 JVM栈 本地方法栈 因为它们的生命周期是和线程同步的 随着线程的销毁 它们占用的内存会自动释放 所以只有方法区和堆需要进行GC 二 如何判断对象是否存活 1

随机推荐

  • linux 开放端口

    我们可以输入命令查看防火墙的状态 firewall cmd state 如何在CentOS 7下开放8080端口 如果上一步处于关闭状态 输入命令 systemctl start firewalld service 如何在CentOS 7下
  • 计算机毕业设计Node.js+Vue大型零售电商平台——购物车管理子系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • 华硕T100HA鼠标乱跳及点击问题解决

    从入手此平板开始就一直有此问题 一直没有解决 今天正好装系统 就顺便解决此问题 一开始打算给这个平板安装Win7 8 网上说装了之后驱动不适配 就此放弃 然后 将系统恢复出厂设置了 然后问题依然在 在网上一直找啊找 终于在百度帖吧里找到问题
  • 人工智能概念

    人工智能概念 人工智能就是用人工方法在机器 计算机 上实现的智能 或称机器智能 即是研究如何用计算机来表示和执行人类的智能活动 以模拟人脑所从事的推理 学习 思考和规划等思维活动 并解决需要人类的智力才能处理的复杂问题 如医疗诊断 管理决策
  • 两个任意长度的长整数相乘(华为oj,C++)

    pre class cpp include oj h include pre
  • 【Android系统蓝牙开发】蓝牙基础知识-蓝牙核心系统架构

    什么是蓝牙 在开启基于蓝牙Spec v5 2的学习前 我们先了解下什么是蓝牙 蓝牙在我们日常生活中又存在哪些实际应用呢 蓝牙无线技术是一种短距离无线通信系统 其核心特性主要是以下三点 robustness 鲁棒性 抗干扰能力强 Low po
  • Python入门—— MySQL-python模块

    MySQL python模块 MySQLdb Python 标准数据库接口为 Python DB API Python DB API为开发人员提供了数据库应用编程接口 可以访问Python数据库接口及API查看详细的支持数据库列表 不同的数
  • Hadoop3 启动服务,提示:Attempting to operate on hdfs namenode as root

    在刚刚安装Hadoop3 环境上 启动Hadoop3 给出如下提示信息 Attempting to operate on hdfs namenode as root 翻译 尝试使用root 账户去操作hdfs namenode 造成原因 缺
  • IEEE 1588-PTP简介

    1 PTP简介 网络测控系统精确时钟同步协议PTP Precision Time Protocol 是一种对标准以太网终端设备进行时间和频率同步的协议 也称为IEEE 1588 简称为1588 1588分为1588v1和1588v2两个版本
  • 树莓派4B安装详细教程,从零开始!

    树莓派4B安装详细教程 从零开始 前言 一 准备材料 1 硬件材料 2 软件材料 二 安装步骤 1 格式化SD卡 2 安装系统 三 安装完成 前言 提示 本文详细介绍树莓派4B的安装流程 适合刚入手树莓派的同学 认为我写的好的同学希望点赞关
  • xxx-0.0.1-SNAPSHOT.jar中没有主清单属性

    添加如下配置即可
  • 算法通关村——二分查找在寻找数组峰顶中的应用

    题目 在数组i的某个位置i 开始 从 0 到 i 都是递增的 从 i 1 都是递减的 请你找到这个最高点 方法一 使用线性遍历实现 分析 最高点如果存在 需要满足arr i 1 lt arr i gt arr i 1 又因为题目说了0到i就
  • 史上最全的Android面试题集锦

    前言 很多人面试之前 可能没有在互联网公司工作过或者说工作过但年头较短 不知道互联网公司技术面试都会问哪些问题 再加上可能自己准备也不充分 去面试没几个回合就被面试官几个问题打蒙了 最后以惨败收场 下述是我收录整理的Android面试题汇总
  • 解决Photoshop无法完成请求,因为找到不知名的或无效的JPEG标识符类型问题

    在我将用微信Alt A截的图到Photoshop的时候出现无法完成请求 因为找到不知名的或无效的JPEG标识符类型问题 如下图 解决办法是 右击图片 用画图打开图片 将图片另存为jpg格式或者png格式即可 再次导入即可成功 具体原因不详
  • 2021年10月中旬—字节AI LAB NLP算法面试题(一)

    问题一 bert的架构是什么 目标是什么 输入包括了什么 三个embedding输入是怎么综合的 Bert的结构主要是Transformer的encoder部分 其中Bert base有12层 输出维度为768 参数量为110M Bert
  • 人工智能-10种机器学习常见算法

    机器学习是目前行业的一个创新且重要的领域 今天 给大家介绍机器学习中的10种常见的算法 希望可以帮助大家适应机器学习的世界 1 线性回归 线性回归 Linear Regression 是目前机器学习算法中最流行的一种 线性回归算法就是要找一
  • 因果推断:因果表征学习的CV落地

    作者 Ostrich 单位 阿里巴巴算法工程师 研究方向 自然语言处理 搜索算法 本文主要梳理因果推断与机器学习相结合的一些比较新的工作思路 也是尝试回答自己在学习因果推断基础知识时的一些疑问 突然 被广泛谈及的因果可以以什么样的方式落地
  • 【BS】compilation debug=true targetFramework=4.0 无法识别的属性“targetFramework”

    一 背景 今天在发布网站的时候遇到这个问题 compilation debug true targetFramework 4 0 无法识别的属性 targetFramework 系统是师哥新做的windows server 2008 图一
  • 【vue】前端下载文件自定义文件名称

    下载文件自定义文件名称 文件下载名称不想和后端提供的URL一样怎么办呢 1 首先给按钮去绑定一个事件 2 正常我们的下载处理方式 3 自定义下载的文件名字 文件下载名称不想和后端提供的URL一样怎么办呢 1 首先给按钮去绑定一个事件 按钮的
  • 微信小程序第六篇:元素吸顶效果实现

    系列文章传送门 微信小程序第一篇 自定义组件详解 微信小程序第二篇 七种主流通信方法详解 微信小程序第三篇 获取页面节点信息 微信小程序第四篇 生成图片并保存到手机相册 微信小程序第五篇 页面弹出效果及共享元素动画 话不多说 先看效果 这种