仿苹果鼠标滚轮控制 文字渐入 淡出效果

news2024/12/28 18:35:46

废话不多说,上代码,纯js+css3

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>


<body>

  <div id="iphone">

    <div id="ui">
      <ul>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
        <li>
          哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
        </li>
      </ul>
    </div>
  </div>
  <style>
    :root {
      --device-width: 770px;
      --device-height: 300vh;
      --ui-width: 640px;
      font-size: 15px;
    }

    #iphone {
      height: 800vh
    }

    #ui {
      position: sticky;
      top: 30%;
      left: 50%;
    }


    #ui ul li {
      display: block;
      width: var(--ui-width);
      height: 30px;
      margin: 10px auto;
      padding-bottom: 10px;
      border-bottom: 1px solid #222;
      transform: ranslateY(calc(-60px * (1 - var(--progress))));
      opacity: var(--progress);
    }
  </style>

  <script>
    const rows = document.querySelectorAll('#ui ul li')
    const html = document.documentElement

    document.addEventListener('scroll', (e) => {
      let scrolled = html.scrollTop / (html.scrollHeight - html.clientHeight)

      let total = 1 / rows.length

      for (let [index, row] of rows.entries()) {
        let start = total * index
        let end = total * (index + 1)

        let progress = (scrolled - start) / (end - start)
        if (progress >= 1) progress = 1
        if (progress <= 0) progress = 0

        row.style.setProperty('--progress', progress)
      }
    })
  </script>
</body>

</html>

效果图
在这里插入图片描述
对你有帮助,给个星星被

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试服务器CPU情况

要查看服务器的CPU情况&#xff0c;你可以使用 TOP 命令结合一些选项来执行相应的测试top 命令&#xff1a;运行 top 命令可以实时监视系统的各个进程和 CPU 使用情况在 top 命令的输出中&#xff0c;有几个重要的指标参数可以帮助你了解系统的 CPU 使用情况和进程信息。以下是…

2023.07.05java面试总结

1、springboot 怎么创建新的对象 2、sprintboot 怎么引用第三方类 3、list set map 区别 4、jvm常用配置 5、list怎么排序&#xff0c;怎么按多个字段排序 6、io怎么读取文件 7、angular现在使用什么版本&#xff0c;angular入口 项目结构 8、promise用法 9、和equals …

c++11 标准模板(STL)(std::basic_ostream)(七)

定义于头文件 <ostream> template< class CharT, class Traits std::char_traits<CharT> > class basic_ostream : virtual public std::basic_ios<CharT, Traits> 类模板 basic_ostream 提供字符流上的高层输出操作。受支持操作包含有格式…

安信可蓝牙PB-02 SDK二次开发记录

目录 1.开发环境 & 烧录调试2.例程踩坑(1).编译烧录 watchdog 例程 1.开发环境 & 烧录调试 详细参考下面两篇教程 【安信可PB-01/02模组专题①】PB-01/02模组开发板应用- BLE-UART固件的使用教程 【安信可PB-01/02模组专题③】PB-01/02模组开发板应用-快速入门SDK二次…

代码随想录算法训练营第十天 | 二叉树系列1

二叉树系列1 二叉树理论基础注意点小记二叉树的种类二叉树的存储方式二叉树的遍历 要熟悉自己所用编程语言常用的数据容器的底层实现一定要会自己实现所用数据结构的定义 二叉树的递归遍历递归三部曲前中后序递归遍历前序遍历--我的代码前序遍历--代码随想录的代码中序遍历--我…

【解决】Pyinstaller打包报错IndexError: tuple index out of range

问题 这个问题主要是在Python3.7以上的版本中遇到&#xff0c;用pyinstaller打包的时候发现报错 /usr/local/lib/python3.10/dis.py argval const_list[const_index], IndexError: tuple index out of range解决方案 vim 进入报错的文件&#xff0c;/usr/local/lib/python…

Css 基础:选择器,三大特性

1.emmet的 快速格式化代码 配置 "editor.formatOnType": true, "editor.formatOnSave": true 2.基础选择器 3.复合选择器 4.单行文本垂直居中原理 5.css背景 6.CSS三大特性 层叠性&#xff1a;相同选择器设置相同样式&#xff0c;发生在样式冲突时&#xf…

VUE:el-button里面的倒计时显示,验证码发送后两分钟倒计时

验证码倒计时显示 框架需求样式图代码template部分script部分style部分部分内容解读 框架 UI&#xff1a;elementUI 前端&#xff1a;vue 需求 发送验证码后&#xff0c;2分钟内不可以在发送&#xff0c;button置灰&#xff0c;120s后可以点击重新发送验证码 样式图 代码 …

【算法设计与分析】拉丁矩阵问题——对于给定的m和n,计算出不同的宝石排列方案数。

问题描述 现有n种不同形状的宝石&#xff0c;每种宝石有足够多颗。欲将这些宝石排列成m行n列的一个矩阵&#xff0c;m≤n&#xff0c;使矩阵中每行和每列的宝石都没有相同的形状。试设计一个算法&#xff0c;计算出对于给定的m和n&#xff0c;有多少种不同的宝石排列方案。 数…

Java 基础进阶篇(三):权限修饰符、final 关键字与枚举

文章目录 一、权限修饰符二、final 关键字2.1 final 作用2.2 final 修饰变量举例2.3 常量三、枚举3.1 枚举的格式3.2 枚举的特征3.3 枚举的应用 一、权限修饰符 权限修饰符 用于约束成员变量、构造器、方法等的访问范围。 权限修饰符&#xff1a; 有四种作用范围由小到大 (priv…

Unity 如何导入二进制Spine文件

Unity 如何导入二进制Spine文件 前言步骤1.修改拓展名2.修改参数3.导出文件4.导入文件5.修改材质球属性6.生成动画 参考 前言 总是忘记Spine导出二进制到Unity的设置&#xff0c;记录一下。 步骤 1.修改拓展名 纹理打包器也修改一下拓展名&#xff08;日常操作&#xff09;…

word@制表位和列数据对齐@填空下划线制作

文章目录 refs制表位(tab stop)制表位类型 制作对其的下划线填空表单&#x1f47a;利用前导符代替下划线制作待填空下划线 制表位对其列数据模拟简单表格测试数据设置引线使用标尺设置 FAQ refs Insert or add tab stops - Microsoft SupportUsing the ruler in Word - Micros…

GaN HEMT主要性能指标有哪些?宽禁带材料电性能测试方案

GaN HEMT器件性能的评估&#xff0c;一般包含静态参数测试&#xff08;I-V测试&#xff09;、频率特性&#xff08;小信号S参数测试&#xff09;、功率特性&#xff08;Load-Pull测试&#xff09;。静态参数&#xff0c;也被称作直流参数&#xff0c;是用来评估半导体器件性能…

JVM理论(一)-基础概念

JVM概述 JVM就是二进制字节码的运行环境,负责装载字节码到其内存,解释/编译为对应平台上的机器指令执行,每条java指令在java虚拟机规范中都有详细定义,包括如何取、处理操作数等;JVM特点如下 一次编译,到处运行&#xff08;各CPU的架构不同的情况下JVM为了实现跨平台,字节码指…

fastadmin使用PHPexcel上传文件处理兼容问题 (已解决)

介绍 fastadmin&#xff1a;支持使用7.0以上版本的PHP PHPexcel&#xff1a;不支持使用7.0以上的PHP版本 2.下载地址 https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8 3&#xff1a;解决兼容 将文件导入到vendor下面&#xff0c;创建一个函数来使用这个文件&…

5.8.10 TCP协议

5.8.10 TCP协议 我们通过一个实例来看一下TCP协议 如图 图中是六个IP数据报的前40个字节的内容&#xff0c;使用的是16进制数表示的&#xff0c;该数据报的背景如下图 主机H通过快速以太网连接Internet&#xff0c;主机H的IP地址是192.168.1.100&#xff0c;服务器S的IP地址是…

高迸发 架构设计方案

前言 ​​在实际生活业务场景开发中&#xff0c;在我们的网站知名度越来越大的时候&#xff0c;随之而来的就是业务体量越来越大&#xff0c;用户群体越来越大&#xff0c;随之而来的技术要求也越来越高&#xff0c;其中核心点对网站的稳定性要求是硬性的。如果一个系统都无法…

新装idea的一些常用设置

新装idea的一些常用设置 新安装的idea常用配置 1、提示内容忽略大小写 File -> Settings -> Editor -> General -> Code Completion -> Match case 2、修改字体大小 File -> Settings -> Editor -> Font -> Size 3、取消启动时自动打开最后开…

阿里云国际站:阿里云计算服务指的是什么?

标题&#xff1a;阿里云计算服务指的是什么&#xff1f; 一、阿里云计算服务的定义   阿里云计算服务&#xff0c;是阿里巴巴集团旗下的云服务平台&#xff0c;提供了从云服务器、云数据库到大数据处理等丰富的云计算服务。它通过构建一种共享的计算资源池&#xff0c;使得用…

《SpringBoot》第05章 配置文件解析

前言 SpringBoot中的application.properties(或application.yaml)文件都是再熟悉不过的了。它是应用的配置文件&#xff0c;我们可以把需要的一些配置信息都写在这个文件里面&#xff0c;需要的时候&#xff0c;我们可以通过Value注解来直接获取即可&#xff0c;那这个文件是什…