js 图片渐变

1. 点击图片,使其渐变为另一张图片

通过定义@keyframes来创建一个淡入淡出的动画效果。当图片被点击时,先添加淡出动画使图片透明度从0渐变到1,然后在1秒后切换图片源并添加淡入动画使新图片透明度从0渐变到1,实现图片渐变效果。

<!DOCTYPE html>
<html>
<head><title>图片渐变效果</title><style>#image {width: 300px;height: 300px;animation: fadeIn 1s forwards; /* 定义动画效果,持续1秒 */}@keyframes fadeIn {from {opacity: 0; /* 初始透明度为0 */}to {opacity: 1; /* 最终透明度为1 */}}</style>
</head>
<body><img id="image" src="image1.jpg" onclick="changeImage()"><script>var image = document.getElementById('image');var images = ['image1.jpg', 'image2.jpg']; // 定义要切换的图片列表var currentImageIndex = 0; // 当前显示的图片索引function changeImage() {currentImageIndex = (currentImageIndex + 1) % images.length; // 循环切换图片索引image.style.animation = 'fadeOut 1s forwards'; // 添加淡出动画setTimeout(function() {image.src = images[currentImageIndex]; // 更换图片源image.style.animation = 'fadeIn 1s forwards'; // 添加淡入动画}, 1000); // 1秒后执行图片切换}</script>
</body>
</html>

这种方法使用CSS动画来实现图片渐变效果,简洁优雅。可以根据需要调整动画效果的持续时间和样式,实现不同的图片切换效果。

2. 使得图片过渡得更加自然

在动画的animation属性中添加了ease缓动函数,使得图片渐变的过程更加平滑和自然。缓动函数可以根据需要进行调整,常见的缓动函数还包括linear(线性)、ease-in(加速)、ease-out(减速)等,可以根据具体效果选择合适的缓动函数。

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>
<head><title>图片渐变效果</title><style>#image {width: 300px;height: 300px;animation: fadeIn 1s ease forwards; /* 使用缓动函数ease */}@keyframes fadeIn {from {opacity: 0;}to {opacity: 1;}}</style>
</head>
<body><img id="image" src="image1.jpg" onclick="changeImage()"><script>var image = document.getElementById('image');var images = ['image1.jpg', 'image2.jpg'];var currentImageIndex = 0;function changeImage() {currentImageIndex = (currentImageIndex + 1) % images.length;image.style.animation = 'fadeOut 1s ease forwards'; // 使用缓动函数easesetTimeout(function() {image.src = images[currentImageIndex];image.style.animation = 'fadeIn 1s ease forwards'; // 使用缓动函数ease}, 1000);}</script>
</body>
</html>

通过调整缓动函数,可以让图片的渐变效果更加流畅和自然,提升用户体验。可以尝试不同的缓动函数,找到最适合需求的过渡效果。

3. 多图渐变

定义了一个包含多张图片的数组images,并在每次点击图片时切换到下一张图片。通过调整images数组中的图片列表,可以实现多张图片之间的渐变效果。

<!DOCTYPE html>
<html>
<head><title>多图渐变效果</title><style>#image {width: 300px;height: 300px;animation: fadeIn 1s ease forwards;}@keyframes fadeIn {from {opacity: 0;}to {opacity: 1;}}</style>
</head>
<body><img id="image" src="image1.jpg" onclick="changeImage()"><script>var image = document.getElementById('image');var images = ['image1.jpg', 'image2.jpg', 'image3.jpg']; // 多张图片列表var currentImageIndex = 0;function changeImage() {currentImageIndex = (currentImageIndex + 1) % images.length;image.style.animation = 'fadeOut 1s ease forwards'; // 添加淡出动画setTimeout(function() {image.src = images[currentImageIndex];image.style.animation = 'fadeIn 1s ease forwards'; // 添加淡入动画}, 1000);}</script>
</body>
</html>

使用了CSS动画来实现图片的渐变效果,结合JavaScript来实现图片的切换和动画效果。可以根据需要添加更多的图片到images数组中,实现多张图片之间的渐变效果。

4. 多图定时随机渐变

使用setInterval函数每隔3秒随机切换一张图片。在每次切换图片时,我们根据随机索引从images数组中获取一张图片,并添加淡入淡出的动画效果。

<!DOCTYPE html>
<html>
<head><title>图片随机变换效果</title><style>#image {width: 300px;height: 300px;animation: fadeIn 1s ease forwards;}@keyframes fadeIn {from {opacity: 0;}to {opacity: 1;}}</style>
</head>
<body><img id="image" src="image1.jpg"><script>var image = document.getElementById('image');var images = ['image1.jpg', 'image2.jpg', 'image3.jpg']; // 图片列表setInterval(function() {var randomIndex = Math.floor(Math.random() * images.length); // 随机索引image.style.animation = 'fadeOut 1s ease forwards'; // 添加淡出动画setTimeout(function() {image.src = images[randomIndex];image.style.animation = 'fadeIn 1s ease forwards'; // 添加淡入动画}, 1000);}, 3000); // 每3秒随机切换图片</script>
</body>
</html>

通过这种方法,可以实现图片的随机变换效果。可以根据需要添加更多的图片到images数组中,实现更加丰富的随机变换效果。

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

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

相关文章

Django调用MTP服务器给指定邮箱发送邮件

Django调用MTP服务器发送邮箱 邮箱的激活链接含有用户数据不能直接发送需要对其进行加密 发送邮箱是借助SMTP服务器进行中转 一. 配置SMTP服务中的邮箱信息以及激活链接 1. 配置邮箱权限 打开网易邮箱设置点击POP3 开启选项 注 : 在打开的过程中会弹出授权密码一点要保存 …

【Unity动画系统】动画层级(Animation Layer)讲解与使用

如何使用Unity的Animation Layer和Avater Mask把多个动画组合使用 想让玩家持枪行走&#xff0c;但是手里只有行走和持枪站立的动作。 Unity中最方便的解决办法就是使用动画层级animation layer以及替身蒙版avatar mask。 创建一个动画层级 Weight表示权重&#xff0c;0的话则…

1.2 Java全栈开发前端+后端(全栈工程师进阶之路)-前置课程JavaScript,看这一篇就够了

上一章我们讲了HTML的知识&#xff0c;那么我们现在要来学习&#xff0c;JavaScript 那么首先我们要知道JavaScript写在哪里。 JavaScript核心语法 js书写的位置 1、写在页面中的script标签下 只有在代码与页面有强关联的情况下才会写在页面里 2、写在指定的js文件下通过…

下一代Nginx? OpenNjet 的入门实践

何为 OpenNjet &#xff1f; OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序&#xff0c;作为底层引擎&#xff0c;OpenNJet 实现了NGINX 云原生功能增强、安全加固和代码重构&#xff0c;利用动态加载机制可以实现不同的产品形态&#xff0…

Python基础详解二

一&#xff0c;函数 函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现某个功能的代码段 def myMethod(data):print("数据长度为",len(data))myMethod("dsdsdsds") 函数的定义&#xff1a; def 函数名(传入参数):函数体return 返回值 def m…

C++笔记-makefile添加第三方.h和.cpp及添加.h和lib库模板

目文件结构如下所示时&#xff1a; project/├── main.cpp├── test.cpp├── DIRA/│ ├── A.cpp│ └── A.h├── DIRBLIB/│ └── libB.so└── include/└── B.h Makefile如下所示&#xff1a; # 编译器设置 CXX g CXXFLAGS -stdc11 -Wall# 目录…

Linux 进程间通信之共享内存

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux知识分享⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d; ​ 目录 ​编辑​ 前言 共享内存直接原理…

C语言栈的含义与栈数据操作代码详解!

引言&#xff1a;在本篇博客中&#xff0c;我们将学到数据结构——栈&#xff0c;讲到栈的含义与关于栈的数据操作代码。栈可以在顺序表、双向链表以及单链表的基础上实现&#xff0c;而于本篇博客中&#xff0c;我们选择在顺序表的基础上实现栈。 更多有关C语言和数据结构知识…

Ansible自动化运维工具 - playbook 剧本编写

一. inventory 主机清单 Inventory 支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或多个主机组内。 1.1 inventory 中的变量含义 Inventory 变量名 含义ansible_hostansible连接节点时的IP地址ansible_port连接对方…

CANdela/Diva系列1--CANdela Studio的基本介绍

大家好&#xff0c;这个系列主要给大家介绍跟诊断相关的Vector 工具CANdela和Diva&#xff0c;首先介绍CANdela。 目录 1.CANdela的简介&#xff1a; 2.如何打开CANdela 工程&#xff1a; 3.CANdela工程的详细介绍&#xff1a; 3.1 工具栏的介绍&#xff1a; 3.2 工作树的…

2024-05-07 商业分析-赚钱之前怎么预估风险-记录

摘要: 2024-05-07 商业分析-赚钱之前怎么预估风险-记录 赚钱之前怎么预估风险 好&#xff0c;大家好&#xff0c;今天我们来讲的是叫什么赚钱之前怎么评估风险啊&#xff0c;这个问题啊提的很好啊&#xff0c;我们待会儿来讲啊。呃&#xff0c;首先呢今天这个主题呢来自于昨天…

Python实现txt转Excel(坐标)

import pandas as pddef txt_to_excel(txt_file, excel_file):# 读取 txt 文件with open(txt_file, r) as f:lines f.readlines()# 将每行数据分割成多个单元格data []for line in lines:row line.strip().split( )data.append(row)# 将数据保存到 Excel 文件df pd.DataFra…

剧本杀小程序,为商家带来更多收益

剧本杀作为一种社交类游戏&#xff0c;关注度越来越高&#xff0c;目前&#xff0c;市场上剧本杀依然呈现上升发展趋势。 不过当下&#xff0c;在剧本杀市场中&#xff0c;大部分商家都开始使用小程序管理运营剧本杀。相对于线下剧本杀&#xff0c;线上剧本杀小程序便于商家管…

一起深度学习

CIFAR-10 卷积神经网络 下载数据集构建网络运行测试 下载数据集 batchsz 32cifar_train datasets.CIFAR10(data,trainTrue,transformtorchvision.transforms.Compose([torchvision.transforms.Resize((32,32)),torchvision.transforms.ToTensor()]),downloadTrue)cifar_train …

基于FPGA的DDS波形发生器VHDL代码Quartus仿真

名称&#xff1a;基于FPGA的DDS波形发生器VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; DDS波形发生器VHDL 1、可以输出正弦波、方波、三角波 2、可以控制输出波形的频率 DDS波形发生器原理…

什么是光伏发电?什么是分布式光伏系统?

一、光伏发电 光伏发电&#xff0c;作为一种可再生能源利用技术&#xff0c;其核心原理基于半导体的光生伏特效应。简而言之&#xff0c;光伏发电就是将太阳能直接转换为电能的过程。它由三个主要部分组成&#xff1a;太阳电池板&#xff08;组件&#xff09;、控制器和逆变器…

word:三线表的绘制【攻略】

word&#xff1a;三线表的绘制【攻略】 前言版权推荐word&#xff1a;三线表的绘制效果简单方法另外的方法 最后 前言 2024-5-7 18:25:08 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客…

经典面试题之滑动窗口专题

class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…

有了这么多套件,为什么还需要APaaS

文/明道云创始人任向晖 在明道云的业务活动中&#xff0c;比较常见的一个问题是和套件应用的关系。一个有具体应用需求的客户为什么不从市场上购买现成的套件应用&#xff0c;而要选择APaaS来构建呢&#xff1f;反过来说似乎也成立&#xff0c;既然一个平台什么应用都能搭建&a…

产品需求文档怎么写?超详细的产品需求文档PRD模板来了!

产品需求文档怎么写&#xff1f;如何写一份简洁明了、外行人看了就能秒懂的产品需求文档呢&#xff1f;今天这篇文章&#xff0c;就来和大家分享如何编写一份高质量的产品需求文档 PRD&#xff01; 下图是来自 boardmix 模板社区的「产品需求文档」模板&#xff0c;它给出了一…