无限视差滚动(轮播)

news2024/11/19 3:37:59

无限视差滚动

无限视差滚动(轮播)可以给用户一种无限滚动的感觉,视觉效果非常的好。话不多说,先来看效果

在这里插入图片描述

这边因为得控制GIF图片大小在5MB以内,导致看着不太丝滑

这种效果在国外用得很多,不过最近几年国内也慢慢开始使用了,这只是演示效果,具体还得看实际要求。
接下来咱们来看代码部分
在这里插入图片描述
HTML结构的话 就是一个div即可

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./src/css/视差滚动.css">
  <title>无限视差滚动</title>
</head>
<body>
  <div class="container"></div>
</body>
<script src="./src/js/视察滚动.js"></script>
</html>

ok,接下来我们来看js代码部分
在这里插入图片描述

  const imgs = [
    './img/11.png',
    './img/22.jpg',
    './img/33.jpg',
    './img/44.jpg',
    // './img/55.jpg',
  ]
  const container = document.querySelector('.container');
  let currentIndex = 0;

  function createItem(params) {
    const imgUrl = imgs[params];
    const item = document.createElement('div');
    item.classList.add('item');
    item.innerHTML = `<img src="${imgUrl}"/>`;
    container.appendChild(item);
    return item;

  }

  function reset() {
    container.innerHTML = '';
    const previousPage = currentIndex - 1 < 0 ? imgs.length - 1 : currentIndex - 1;
    const nextPage = currentIndex + 1 > imgs.length - 1 ? 0 : currentIndex + 1;

    createItem(previousPage).classList.add('previous')
    createItem(currentIndex).classList.add('current')
    createItem(nextPage).classList.add('next')
  }

  reset()
  let vitality = false;
  container.addEventListener('wheel', (event) => {
    if (!event.deltaY) {
      return
    }
    if (vitality) {
      return;
    }
    vitality = true;
    if (event.deltaY > 0) {
      // 往下滑
      container.classList.add('scroll-down');
      currentIndex = currentIndex + 1 > imgs.length - 1 ? 0 : currentIndex + 1;

    } else {
      // 往上滑
      container.classList.add('scroll-up');
      currentIndex = currentIndex - 1 > imgs.length - 1 ? 0 : currentIndex - 1;
    }
  });

  container.addEventListener('transitionend', () => {
    vitality = false;
    container.classList.remove('scroll-down');
    container.classList.remove('scroll-up');
    reset()
  })

核心代码咱都写好了,现在就是css样式部分来完善咱们得无限视差滚动(轮播)

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body {
    overflow: hidden;
  }

  .container {
    height: 100vh;
    position: relative;
  }

  .item {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
    transition: 1s ease-in-out;
  }

  .item img {
    position: absolute;
    width: 100%;
    height: 100vh;
    object-fit: cover;
    transition: 1s;
  }

  .item.previous,
  .item.next {
    z-index: 1;
    height: 0;
  }

  .item.next {
    bottom: 0;
  }

  .item.next img {
    bottom: 0;
    transform: translateY(10%);
  }

  .item.item.previous img {
    transform: translateY(-10%);
  }

  .scroll-up .item.previous {
    height: 100%;
  }

  .scroll-up .item.previous img {
    transform: translateY(0%);
  }

  .scroll-up .item.current img {
    transform: translateY(10%);
  }

  .scroll-down .item.next {
    height: 100%;
  }

  .scroll-down .item.next img {
    transform: translateY(0%);
  }

  .scroll-down .item.current img {
    transform: translateY(-10%);
  }

这样下来,无限视差滚动(轮播)就已经完成了,是不是挺简单的。
希望这个小示列能帮助到你们。
在这里插入图片描述


  • 失联

最后编辑时间 2024,05,11;17:38

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

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

相关文章

融合Transformer与CNN,实现各任务性能巅峰,可训练参数减少80%

论文er看过来&#xff0c;今天给各位推荐一个热门创新方向&#xff1a;CNNTransformer。 众所周知&#xff0c;CNN通过多层卷积自动学习空间层级特征&#xff0c;能够有效提取图像局部特征。而Transformer通过自注意力机制全局建模&#xff0c;能够有效处理长距离依赖关系。 …

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(IDE方式)】

Hi3516标准系统入门&#xff08;IDE方式&#xff09; 注意&#xff1a; 从3.2版本起&#xff0c;标准系统不再针对Hi3516DV300进行适配验证&#xff0c;建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作&#xff0c;则可能会出现…

静态分析-RIPS-源码解析记录-01

token流扫描重构部分&#xff0c;这一部分主要利用php的token解析api解析出来的token流&#xff0c;对其中的特定token进行删除、替换、对于特定的语法结构进行重构&#xff0c;保持php语法结构上的一致性 解析主要在lib/scanner.php中通过Tokenizer这个类来实现,也就是在main…

视频号小店做店的最新最全攻略,小白也能快速上手轻松变现!

大家好&#xff0c;我是电商花花。 从开始接触视频号小店到现在已经两年多时间了&#xff0c;关于视频号小店也有不少经验和感触。 最近越来越多的人开始进入视频号小店的电商赛道&#xff0c;有人日均销售额做到几万甚至十几万。 想在视频号上变现赚钱&#xff0c;但是苦于…

APP广告转化流程对广告变现收益有影响吗?

对接广告平台做广告变现的APP开发者都清楚&#xff0c;广告变现的价格、收益不是一成不变的&#xff0c;经常会遇到eCPM波动对广告收益产生较大影响。 导致APP收益产生波动的因素包括&#xff1a;用户质量、广告类型、广告平台的资源波动、广告预算的季节性、广告展示量级等。…

R语言数据探索与分析-中国GDP回归分析与预测

首先读取数据&#xff1a; 将GDP列转换为常规数字格式 # 可视化GDP数据 # 查看数据结构 # 确保数据类型是正确的 第一张图片展示了中国2002年到2021年间的GDP增长趋势&#xff0c;这是一个时间序列图&#xff0c;其中横轴表示年份&#xff0c;纵轴表示GDP&#xff08;单位未…

springcloud alibaba微服务框架涉及的技术

一、微服务架构中核心模块及其使用技术总览 二、各模块详细说明 1、注册中心 该模块主要功能为 自动提供服务的注册与发现&#xff0c;集中式管理服务&#xff0c;让 服务调用端发现服务&#xff0c;让服务提供端注册服务&#xff0c;倘若没有注册中心&#xff0c;那客户端就…

Acwing2024蓝桥杯FloodFill

AcWing 687. 扫雷 模拟以下样例(10X10): 把扫雷地图转变为数字记录的地图:地雷记作-1,其余表示8个方向有几个地雷,完成后如下图: 接着搜索所有0联通块(为红色矩形),并且把联通块附近不是地雷的点(红色圆形)全标记为-1,如下图: 而答案就是当前该图中大于0的数的数目之和,再加上…

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用教程

原文链接&#xff1a;GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247603080&idx1&sn3e0d7015a2a717c320ebea3a673388ee&chksmfa82126fcdf59b795c7e2cea575470d42480ab809b926be5f94633eac…

国产银河麒麟V10SP1系统下搭建TiDB数据库操作步骤图文

开发目的&#xff1a;在国产银河麒麟系统中搭建TiDB数据库运行环境。 开发工具&#xff1a;银河麒麟系统V10SP1TiDBMySql数据库8.0。 具体步骤&#xff1a; 1、在VmWare虚拟机中安装好国产银河麒麟V10Sp1操作系统。 2、打开终端命令&#xff0c;安装TiDB相关软件&#xff1…

张驰咨询:AI与六西格玛——携手共进,非彼此替代

在历史的洪流中&#xff0c;技术与方法的演进如同波澜壮阔的画卷&#xff0c;不断书写着人类文明的篇章。六西格玛&#xff0c;作为一种追求极致品质与效率的方法论&#xff0c;是现代工业文明中的瑰宝。而当我们面对AI&#xff08;人工智能&#xff09;这一新时代的产物时&…

安卓模拟器Frida环境搭建 (mumu+adb+frida)

安卓模拟器Frida环境搭建 &#xff08;mumuadbfrida&#xff09; mumu模拟器安装adb与frida下载mumuadbfrida配置一般的报错实战 针对apk抓包问题&#xff0c;有的时候Android9已经不适用于现在的需求&#xff0c;需要更高的Android版本&#xff0c;mumu模拟器提供了Android12的…

【经验总结】Vue2中的全局变量(store

需求场景 需要在vue中存储一个可变的&#xff0c;可读写的全局变量在不同的js、页面中均可调用和读写 技术&#xff1a;使用vue的store 用法总结 一、定义变量 1、找到vue的/src/store路径&#xff0c;在modules文件夹下创建文件&#xff08;这里便于测试创建demo.js&…

Linux下安装JDK并配置环境变量

一、Oracle官网下载jdk 1、官网地址 https://www.oracle.com/java/technologies/downloads/#java17 2、命令下载 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 3、解压 tar -zxvf jdk-17_linux-x64_bin.tar.gz 4、配置环境变量 ec…

HarmonyOS开发案例:【生活健康app之获取成就】(3)

获取成就 本节将介绍成就页面。 功能概述 成就页面展示用户可以获取的所有勋章&#xff0c;当用户满足一定的条件时&#xff0c;将点亮本页面对应的勋章&#xff0c;没有得到的成就勋章处于熄灭状态。共有六种勋章&#xff0c;当用户连续完成任务打卡3天、7天、30天、50天、…

IP地址127.0.0.1的误解:一次投标监管的技术失误

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

selenium进行xhs图片爬虫:03获取一篇图文的图片

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

出海企业哪种组网方案更省事?

对于出海企业而言&#xff0c;建立跨地区的数据传输和协同工作至关重要&#xff0c;以提升运营效率。因此&#xff0c;网络构建变得迫在眉睫。通过构建企业组网&#xff0c;企业能够加强与海外分支、客户和合作伙伴之间的联系&#xff0c;加速海外业务的发展。 然而&#xff0c…

深兰科技荣获中国机器人行业年度独角兽企业奖

近日&#xff0c;“维科杯OFweek 2023人工智能产业大会暨行业年度评选颁奖典礼“在深圳隆重举行。经OFweek网络投票、专家组评审及组委会综合评审三轮激烈紧张的评审筛选&#xff0c;通过对近300个参评项目的综合实力考量&#xff0c;最终深兰科技成功荣膺“维科杯OFweek2023中…

计算机视觉——OpenCV实现Lucas-Kanade 光流追踪

1.光流 光流法是计算机视觉中用于估计图像序列中物体运动的关键技术。它类似于观察夜空中的彗星&#xff0c;通过其在天空中的运动轨迹来追踪它的路径。在图像处理中&#xff0c;光流帮助我们理解像素点如何在连续的帧之间移动。 1.1 稀疏光流法 稀疏光流法关注于图像中的关…