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://www.mzph.cn/web/7785.shtml

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

相关文章

电路板第一次调试注意事项

电路板第一次调试注意事项 调板经验其他人的经验一、上电前检查1、目测检查2、电源短路检查3、连线检查4、元器件安装检查 二、通电后检测1、通电观察2、静态调试3、动态调试 调板经验 1.打开原理图 PCB&#xff0c;熟悉一遍。 2.拿到板&#xff0c;找到输入正负极&#xff0…

VUE的回调函数,使用this变量undefined,怎么办

由于预订的抓拍方案无法令人满意&#xff0c;于是又回到了直接在WEB抓拍的方案。这个我信心满满&#xff0c;因为之前的代码已经验证过了。 验证是通过的&#xff0c;想法是简单的&#xff0c;现实是不通的。我一点抓拍按钮&#xff0c;没反应啊。这是怎么回事呢&#xff1f;于…

自动化机器学习——贝叶斯优化

自动化机器学习——贝叶斯优化 贝叶斯优化是一种通过贝叶斯公式推断出目标函数的后验概率分布&#xff0c;从而在优化过程中不断地利用已有信息来寻找最优解的方法。在贝叶斯优化中&#xff0c;有两个关键步骤&#xff1a;统一建模和获得函数的优化。 1. 统一建模 在贝叶斯优…

.双链表.

题目&#xff1a; 实现一个双链表&#xff0c;双链表初始为空&#xff0c;支持 55 种操作&#xff1a; 在最左侧插入一个数&#xff1b;在最右侧插入一个数&#xff1b;将第 k&#x1d458; 个插入的数删除&#xff1b;在第 k&#x1d458; 个插入的数左侧插入一个数&#xf…

MYSQL-使用事务保证数据完整性

什么是事务&#xff1f; 事务&#xff08;Transaction&#xff09;是作为单个逻辑工作单元执行的一系列操作 多个操作作为一个整体向系统提交&#xff0c;要么都执行&#xff0c;要么都不执行 事务的特性&#xff1a; 事务必须具备以下四种属性&#xff0c;简称ACID属性 1、…

新型中医揿针如何降血糖呢?

点击文末领取揿针的视频教程跟直播讲解 “新型针贴”专用揿针是为“埋针疗法”特制治的一种特殊针具&#xff0c;它是古代针刺留针方法的发展。具体来说&#xff0c;它是将特制针具刺入皮内&#xff0c;固定后留置一定时间&#xff0c;利用其持续微弱的刺激作用来治疗疾病的一…

做抖音小店需要注意什么?这几点很多人不知道,看完防踩坑

大家好&#xff0c;我是电商笨笨熊 抖音小店虽然推出了一段时间&#xff0c;但是依旧有新手玩家陆陆续续加入其中&#xff1b; 对于很多新手来说&#xff0c;只看到了其中红利&#xff0c;但却没有看到其中包含的一些运营小细节&#xff0c;且这些细节决定你店铺未来发展&…

现代城市化生活下,很多人有高薪,但是工作压力大,幸福度和自由度不一定高,从社会发展和哲学的角度来解读一下

在现代城市化生活中&#xff0c;高薪与工作压力、幸福度和自由度的关系&#xff0c;确实是一个值得从社会发展和哲学角度深入探讨的话题。 从社会发展角度看 经济驱动&#xff1a;随着社会的快速发展&#xff0c;经济成为推动社会进步的重要力量。人们为了追求更高的生活质量…

u段麦克风方案无线技术的特点与优势

UHF无线麦克风相比其他无线技术具有多个优势&#xff1a; 低成本和高效率&#xff1a;UHF无线麦克风系统可以实现低成本的解决方案&#xff0c;特别是在短距离应用中&#xff0c;如教室中的助听设备。这种系统不仅成本较低&#xff0c;还能提供与电话质量相近的声音质量&#…

【redis】Redis数据类型(四)Set类型

目录 Set类型介绍使用场景 Set类型数据结构set的单个元素的添加过程IntSet哈希表内存结构 常用命令SADD示例 SREM示例 SMEMBERS示例 SISMEMBER示例 SCARD示例 SMOVE示例 SPOP示例 SRANDMEMBER示例 SINTER示例 SINTERSTORE示例 SUNION示例 SUNIONSTORE示例 SDIFF示例 SDIFFSTORE…

常用邮箱汇总

01. 临时邮箱 24小时邮箱&#xff1a;http://24mail.chacuo.net60分钟邮箱&#xff1a;https://www.guerrillamail.com/zh/10 分钟邮箱&#xff1a;https://linshiyouxiang.net/10 分钟邮箱&#xff1a;https://temp-mail.org/zh/10 分钟邮箱&#xff1a;https://10minutemail…

webrtc应用举例

WebRTC&#xff08;Web Real-Time Communication&#xff09;是一种用于在Web浏览器和移动应用程序之间进行实时通信的开放标准。以下是一些WebRTC应用的例子&#xff1a; 1. **WebRTC电话**&#xff1a;用户可以通过Web浏览器进行点对点的音频和视频通话&#xff0c;无需安装…

每日一题(PTAL2):列车调度--贪心+二分

选择去维护一个最小区间 代码1&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;int num;vector <int> v;int res0;for(int i0;i<n;i){cin>>num;int locv.size();int left0;int rightv.size()-1;while(left<…

c语言之枚举

枚举是将一个变量的可能的值都列出来&#xff0c;但是对应的值只能是其中的一个。 枚举创建的方式 enum 枚举类型名&#xff08;值1&#xff0c;值2&#xff0c;值3&#xff0c;值n&#xff09; 如何定义枚举变量 enum 枚举类型 变量名 示例代码如下 #include<stdio.h…

Go语言fmt包深度探索:格式化输入输出的利器

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f3ad; 引言一、基础输出函数fmt.Print与fmt.Println&#x1f4cc; fmt.Print&#xff1a;纯粹输出&#xff0c;不带换行&#x1f4cc; fmt.Println&#xff1a;输出后自动添加换行符 二、格式化输出fmt.Printf&…

在Java中如何有效地处理内存泄露

在Java中&#xff0c;处理内存泄露有多种方法&#xff0c;以下是其中三种常见的方法及其原理和适用场景&#xff1a; ## 1. 合理使用垃圾回收机制 Java中的垃圾回收机制&#xff08;Garbage Collection&#xff0c;GC&#xff09;是一种自动化的内存管理技术&#xff0c;它可以…

代码随想录day19day20打卡

二叉树 1 二叉树的最大深度和最小深度 最大深度已经学习过了&#xff0c;实质就是递归的去判断左右子节点的深度&#xff0c;然后对其进行返回。 附加两个学习的部分&#xff1a; &#xff08;1&#xff09;使用前序遍历的方法求解 int result; void getdepth(TreeNode* nod…

保研面试408复习 1——操作系统、计网、计组

文章目录 1、操作系统一、操作系统的特点和功能二、中断和系统调用的区别 2、计算机组成原理一、冯诺依曼的三个要点二、MIPS&#xff08;每秒百万条指令&#xff09;三、CPU执行时间和CPI 3、计算机网络一、各个层常用协议二、网络协议实验——数据链路层a.网络速率表示b.数据…

【stm-3】定时器定时中断定时器外部时钟

1.定时器定时中断 (1)main.c #include "Device/Include/stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "timer.h" uint16_t Num; int main(void) {OLED_Init();Timer_Init();OLED_ShowString(1,1…

酷得智能电子方案 早教学习机

早教学习机是用户友好的&#xff0c;易于操作&#xff0c;同时要确保内容的科学性和适宜性&#xff0c;以促进儿童的健康成长和智力发展。 通常包括以下几个方面&#xff1a; 1.年龄分级内容&#xff1a;软件会根据儿童的不同年龄段提供相应的教育内容&#xff0c;从新生儿到…