实现前端当中的页面过渡动画

使用 HTML、CSS 和 JavaScript 实现页面过渡动画

在现代网页设计中,用户体验是至关重要的。而页面切换时的平滑过渡效果,不仅能让界面更加美观,也能增强用户的互动体验。
在这里插入图片描述

引言

作为一名热爱前端开发的程序员,我一直在寻找能提升用户体验的方式。通过简单的页面过渡效果,我发现用户的参与度和满意度都有明显提升。我将分享我实现页面过渡动画的经验,以帮助大家打造更流畅的网页体验。通过本文,你将能够创建出令人印象深刻的页面切换效果,让访客在浏览你的网站时感受到更加流畅的体验。

一、准备工作

在开始之前,我们需要一些基本的文件结构,包括两个 HTML 文件、一个 CSS 文件和一个 JavaScript 文件。这里我将用 index.htmlpage2.html 文件来展示。

index.html

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>凯文·杜兰特 - 页面 1</title>  
    <link rel="stylesheet" href="styles.css">  
</head>  
<body>  
    <div class="container">  
        <div class="page active">  
            <h1>凯文·杜兰特</h1>  
            <p>欢迎来到关于凯文·杜兰特的页面!凯文·杜兰特(Kevin Durant)是一位美国职业篮球运动员,现效力于NBA的菲尼克斯太阳队。他被广泛认为是现代篮球史上最伟大的得分手之一。</p>  
            <h2>早年生涯</h2>  
            <p>杜兰特于1988年9月29日出生于华盛顿特区,他在德拉瓦大学打球,随后在2007年NBA选秀中以第二顺位被西雅图超音速队选中。</p>  
            <h2>职业生涯</h2>  
            <p>杜兰特在西雅图超音速队开始了他的职业生涯,随后球队迁移至俄克拉荷马城,成为俄克拉荷马城雷霆队。他在2012年带领雷霆队进入NBA总决赛,并获得了2014年的NBA最有价值球员(MVP)奖。</p>  
            <h2>冠军与荣誉</h2>  
            <p>杜兰特在2017年和2018年与金州勇士队赢得了两个NBA总冠军,并在这两个总决赛中被评为总决赛MVP。他还代表美国国家队参加了多届国际比赛,赢得了包括奥运会金牌在内的多个荣誉。</p>  
            <a href="page2.html" class="link">切换到页面 2</a>  
        </div>  
    </div>  
    <script src="script.js"></script>  
</body>  
</html>

page2.html

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>凯文·杜兰特 - 页面 2</title>  
    <link rel="stylesheet" href="styles.css">  
</head>  
<body>  
    <div class="container">  
        <div class="page active">  
            <h1>凯文·杜兰特的成就</h1>  
            <p>凯文·杜兰特在NBA的职业生涯中取得了诸多成就,包括:</p>  
            <ul>  
                <li>2次NBA总冠军(2017年、2018年)</li>  
                <li>2次NBA总决赛MVP(2017年、2018年)</li>  
                <li>1次NBA常规赛MVP(2014年)</li>  
                <li>10次入选NBA全明星阵容</li>  
                <li>4次NBA得分王</li>  
                <li>3次入选NBA最佳阵容第一阵容</li>  
                <li>2次入选NBA最佳阵容第二阵容</li>  
            </ul>  
            <p>杜兰特以其出色的得分能力、全面的技术和高大的身材在场上表现出色。他的投篮能力和突破能力使他成为对手的噩梦。</p>  
            <a href="index.html" class="link">切换到页面 1</a>  
        </div>  
    </div>  
    <script src="script.js"></script>  
</body>  
</html>

在这两个 HTML 文件中,我们创建了两个简单的页面,每个页面都有一个链接可以切换到另一个页面。

二、设置样式

在 CSS 文件中,我们将设置页面的基本样式,并为过渡动画定义关键帧。以下是 styles.css 的内容:

body {  
    font-family: Arial, sans-serif;  
    margin: 0;  
    overflow: hidden;  
    background-color: #f0f0f0; /* 背景颜色 */  
}  

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

.page {  
    position: absolute;  
    width: 100%;  
    height: 100%;  
    opacity: 0;  
    transition: opacity 0.5s ease;  
    padding: 20px; /* 内边距 */  
    box-sizing: border-box; /* 包含内边距和边框 */  
}  

.page.active {  
    opacity: 1;  
}  

h1 {  
    color: #333;  
    font-size: 2.5em;  
    margin-bottom: 10px;  
}  

h2 {  
    color: #444;  
    font-size: 2em;  
    margin-top: 20px;  
}  

p {  
    color: #666;  
    line-height: 1.6; /* 行高 */  
    margin-bottom: 15px;  
}  

ul {  
    list-style-type: disc;  
    padding-left: 20px;  
}  

.link {  
    display: inline-block;  
    margin-top: 20px;  
    padding: 10px 20px;  
    background-color: #007bff;  
    color: white;  
    text-decoration: none;  
    border-radius: 5px; /* 圆角 */  
    transition: background-color 0.3s ease;  
}  

.link:hover {  
    background-color: #0056b3; /* 悬停效果 */  
}  

.fade-out {  
    opacity: 0;  
    transition: opacity 1s ease;  
}

在这里,我们为页面设置了基本的样式,使用 position: absolute 来确保页面重叠,并通过 opacity 属性实现过渡效果。transition 属性使得页面在切换时能够平滑过渡。

三、实现过渡动画的 JavaScript

现在,让我们通过 JavaScript 来实现页面之间的切换效果。以下是实现页面过渡动画的 script.js 文件:

document.addEventListener("DOMContentLoaded", function () {
  const links = document.querySelectorAll(".link");

  links.forEach((link) => {
    link.addEventListener("click", function (event) {
      event.preventDefault();
      const targetUrl = link.getAttribute("href");

      // 添加过渡效果
      document.body.classList.add("fade-out");

      // 设定定时器以便在过渡动画结束后跳转
      setTimeout(() => {
        window.location.href = targetUrl;
      }, 1000); // 与 CSS 中的过渡时间相同
    });
  });
});

script.js 中,我们为链接添加了点击事件。当点击链接时,页面将添加一个过渡效果类,然后在过渡结束后跳转到目标页面。这里的 setTimeout 确保了页面在过渡动画结束后再进行跳转。

四、测试和优化

完成以上步骤后,我们就可以在浏览器中测试我们的页面。点击链接,你会看到页面平滑切换的效果。为了确保一切流畅,你可以根据需要调整 CSS 动画的持续时间以及其他样式效果。

兼容性考虑

在实现页面过渡效果时,也要考虑不同浏览器的兼容性。确保你使用的 CSS 属性在主要浏览器中都能正常运行。此外,可以使用 @supports 规则来检查浏览器是否支持特定的 CSS 特性,以便于为不支持的浏览器提供替代方案。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AJAX笔记入门篇

黑马程序员视频地址&#xff1a; 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…

ts 进阶

吴悠讲编程 : 20分钟TypeScript进阶&#xff01;无废话快速提升水平 前端速看 https://www.bilibili.com/video/BV1q64y1j7aH

望获实时Linux系统:2024回顾与2025展望

2024年回顾 功能安全认证 2024年4月&#xff0c;望获操作系统V2获ISO26262:2018功能安全产品认证&#xff08;ASIL B等级&#xff09;&#xff0c;达到国际功能安全标准。 EtherCAT实时性增强 2024年5月&#xff0c;发布通信实时增强组件&#xff0c;EtherCAT总线通信抖…

linux监控脚本+自动触发邮件发送

linux脚本 需求&#xff1a; CPU 负载&#xff1a;使用 uptime 命令&#xff0c;我们可以清楚地了解系统的 CPU 负载情况。这个命令会显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。高负载可能意味着系统正在处理大量的任务&#xff0c;可能会导致性能下降或服务响应延迟…

软件工程概论试题一

一、单选 1.下面关于“发布测试”的观点错误的是( )。 A.系统开发团队不应该负责发布测试 B.发布测试是一个确认检查的过程 C.发布测试的目的是让系统供应商确信系统足够好可以使用了 D.发布测试通常采用白盒测试 正答&#xff1a;D 2.下图最有可能是()体系结构风格。 A. C…

iPhone SE(第三代) 设备详情图

目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn

基于物联网设计的疫苗冷链物流监测系统

一、前言 1.1 项目开发背景 随着全球经济的发展和物流行业的不断创新&#xff0c;疫苗和生物制品的运输要求变得越来越高。尤其是疫苗的冷链物流&#xff0c;温度、湿度等环境因素的控制直接关系到疫苗的质量和效力&#xff0c;因此高效、可靠的冷链监控系统显得尤为重要。冷…

ZZNUOJ(C/C++)基础练习1000——1010(详解版)

目录 1000 &#xff1a; AB Problem C语言版 C版 1001 &#xff1a; 植树问题 C语言版 C版 1002 &#xff1a; 简单多项式求和 C语言版 C版 1003 &#xff1a; 两个整数的四则运算 C语言版 C版 1004 &#xff1a; 三位数的数位分离 C语言版 C版 补充代…

mapbox加载geojson,鼠标移入改变颜色,设置样式以及vue中的使用

全国地图json数据下载地址 目录 html加载全部代码 方式一&#xff1a;使用html方式加载geojson 1. 初始化地图 2. 加载geojson数据 设置geojson图层样式&#xff0c;设置type加载数据类型 设置线条 鼠标移入改变颜色&#xff0c;设置图层属性&#xff0c;此处是fill-extru…

Linux进程调度与等待:背后的机制与实现

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 当一个进程发起某种操作&#xff08;如I/O请求、信号、锁的获取等&#xff09;&#xff0c;但该操作需要的资源暂时不可用时&#xff0c;进程会被操作系统挂起&#xff0c;进入“等待队列”或“阻塞状态”。…

低代码系统-产品架构案例介绍、明道云(十一)

明道云HAP-超级应用平台(Hyper Application Platform)&#xff0c;其实就是企业级应用平台&#xff0c;跟微搭类似。 通过自设计底层架构&#xff0c;兼容各种平台&#xff0c;使用低代码做到应用搭建、应用运维。 企业级应用平台最大的特点就是隐藏在冰山下的功能很深&#xf…

DeepSeek大模型技术解析:从架构到应用的全面探索

一、引言 在人工智能领域&#xff0c;大模型的发展日新月异&#xff0c;其中DeepSeek大模型凭借其卓越的性能和广泛的应用场景&#xff0c;迅速成为业界的焦点。本文旨在深入剖析DeepSeek大模型的技术细节&#xff0c;从架构到应用进行全面探索&#xff0c;以期为读者提供一个…

python学opencv|读取图像(四十八)使用cv2.bitwise_xor()函数实现图像按位异或运算

【0】基础定义 按位与运算&#xff1a;两个等长度二进制数上下对齐&#xff0c;全1取1&#xff0c;其余取0。 按位或运算&#xff1a;两个等长度二进制数上下对齐&#xff0c;有1取1&#xff0c;其余取0。 按位取反运算&#xff1a;一个二进制数&#xff0c;0变1,1变0。 按…

DeepSeek辅助学术写作摘要内容

学术摘要写作 摘要是文章的精华&#xff0c;通常在200-250词左右。要包括研究的目的、方法、结果和结论。让AI工具作为某领域内资深的研究专家&#xff0c;编写摘要需要言简意赅&#xff0c;直接概括论文的核心&#xff0c;为读者提供快速了解的窗口。 下面我们使用DeepSeek编…

World Creator地形导入UE

修改导出分辨率1009x1009, 虚幻默认参数的整体分辨率是1009 导出预设选择高度图&#xff08;heigh map&#xff09;格式选择PNG 16位,或者RAW 16位&#xff0c;需要反转y轴&#xff08;与虚幻不同&#xff09;&#xff0c;命名格式会自动带一个 , 将改成_ 或者删掉自己命名 &am…

大数据Hadoop入门3

目录 第五部分&#xff08;Apache Hive DML语句和函数使用&#xff09; 1.课程内容大纲和学习目标 2.Hive SQL-DML-load加载数据操作 3.Hive SQL-DML-insert插入数据 4.Hive SQL-DML-select查询-语法书和环境准备 5.Hive SQL-DML-select查询-列表达式和distinct去重 6.Hi…

WPS数据分析000005

目录 一、数据录入技巧 二、一维表 三、填充柄 向下自动填充 自动填充选项 日期填充 星期自定义 自定义序列 1-10000序列 四、智能填充 五、数据有效性 出错警告 输入信息 下拉列表 六、记录单 七、导入数据 ​编辑 八、查找录入 会员功能 Xlookup函数 VL…

【Redis】hash 类型的介绍和常用命令

1. 介绍 Redis 中存储的 key-value 本身就是哈希表的结构&#xff0c;存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示 2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为…

基于STM32的阿里云智能农业大棚

目录 前言&#xff1a; 项目效果演示&#xff1a; 一、简介 二、硬件需求准备 三、硬件框图 四、CubeMX配置 4.1、按键、蜂鸣器GPIO口配置 4.2、ADC输入配置 4.3、IIC——驱动OLED 4.4、DHT11温湿度读取 4.5、PWM配置——光照灯、水泵、风扇 4.6、串口——esp8266模…

Ollama+DeepSeek本地大模型部署

1、Ollama 官网&#xff1a;https://ollama.com/ Ollama可以干什么&#xff1f; 可以快速在本地部署和管理各种大语言模型&#xff0c;操作命令和dokcer类似。 mac安装ollama&#xff1a; # 安装ollama brew install ollama# 启动ollama服务&#xff08;默认11434端口&#xf…