js 图片渐变

news2024/11/26 18:39:18

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'; // 使用缓动函数ease
            
            setTimeout(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.coloradmin.cn/o/1650847.html

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

相关文章

Hive Views 视图

Hive Views 视图 在Hive中&#xff0c;视图&#xff08;Views&#xff09;是虚拟表&#xff0c;它只包含查询定义&#xff0c;而不包含实际的数据。视图可以简化复杂查询&#xff0c;隐藏数据结构&#xff0c;提供安全性&#xff0c;以及促进数据访问和重用。 创建视图的语法如…

推荐网站(5)Pika文字生成视频,ai视频创作

今天推荐一个网站&#xff0c;Pika文字生成视频&#xff0c;通过问题描述&#xff0c;帮我们生成对应的视频&#xff0c;非常的实用。 比如输入&#xff1a;一只小狗在河边洗澡 当然我们还可以在生成的视频上编辑 点击编辑后出来一些属性&#xff0c;可以修改区域&#xff0c…

MyBatis入门例子

1、建立与数据库对应的POJO类 2、建立mybatis的配置文件 修改后如下&#xff1a; 3、创建POJO对象和Mysql数据的表之间的映射配置 4、建一个测试方法 实现从数据库中取数一条数据&#xff0c;封装成User对象返回 注意点&#xff1a; 这点&#xff0c;大家应该不陌生了&#x…

2024最新行业领域名词解释大全

2024最新行业领域名词解释大全 &#x1f680; 大家好&#xff01;我是你们的老朋友猫头虎&#x1f42f;。今天要为大家带来2024年最新的行业领域名词解释大全&#xff01;在这个信息爆炸的时代&#xff0c;准确了解不同领域的行业动态、工作机会和职业前景至关重要。下面我会分…

Java -- (part22)

一.缓冲流 字节缓冲流 BufferedOutputStream 1.构造 BufferedOutputStream(OutputStream out) 2.用法 和FileOutputStream一样 BufferedInputStream 1.构造 BufferedInputStream(InputStream in) 2.用法 和FileInputStream一样 字符缓冲流 BufferedWriter 1.构造…

Pytorch 实现情感分析

情感分析 情感分析是 NLP 一种应用场景&#xff0c;模型判断输入语句是积极的还是消极的&#xff0c;实际应用适用于评论、客服等多场景。情感分析通过 transformer 架构中的 encoder 层再加上情感分类层进行实现。 安装依赖 需要安装 Poytorch NLP 相关依赖 pip install t…

解决3D模型只显示线框材质的方法---模大狮模型网

在3D建模和渲染过程中&#xff0c;正确的材质和纹理是呈现逼真效果的关键。然而&#xff0c;有时候用户可能会遇到一个常见问题&#xff0c;即3D模型在渲染或查看时只显示线框材质&#xff0c;而没有正确的表面纹理和颜色。本文将介绍解决这一问题的几种方法&#xff0c;帮助用…

工厂自动化升级改造(2)-RS485与Modbus通信协议

在工业控制、电力通信、智能仪表等领域,数据交换通常依赖于串口通信。最初,RS232接口是主流选择,然而,由于工业现场的复杂性,各种电气设备产生的电磁干扰可能导致信号传输错误。 RS232和RS485是两种不同的串行通信协议,它们在电气特性、传输距离和拓扑结构等方面有所不同…

OpenAI的搜索引擎要来了!

最近的报道和业界泄露信息显示&#xff0c;OpenAI正秘密研发一款新的搜索引擎&#xff0c;可能叫SearchGPT或Sonic&#xff0c;目标是挑战Google的搜索霸权。预计这款搜索引擎可能在5月9日即将到来的活动中正式亮相。 SearchGPT的蛛丝马迹 尽管OpenAI对SearchGPT尚未表态&…

【C++】文件

目录 文件文件分类文本文件的读写(ASCII文件)的读写打开文件打开文件的方式关闭文件将数据写入ASCII文件从ASCII文件读入数据 二进制存储对比ASCII和二进制存储用成员函数read和write读写二进制文件打开方式文件的读入与读出 文件 所谓文件&#xff0c;一般指存储在外部介质上…

【Ajax零基础教程】-----第一课 Ajax简介

一、什么是ajax ajax即 Asynchronous javascript And XML (异步 javaScript 和 XML) 是一种创建交互式&#xff0c;快速动态应用的网页开发技术&#xff0c;无需重新加载整个网页的情况下&#xff0c;能够更新页面局部数据的技术。 二、为什么使用Ajax 通过在后台与服务器进行少…

一览函数式编程

文章目录 一、 什么是函数式编程1.1 编程范式1.1.1 命令式编程(Imperative Programming)范式1.1.2 声明式编程(Declarative Programming)范式1.1.3 函数式编程(Functional Programming)范式1.1.4 面向对象编程(Object-Oriented Programming)范式1.1.5 元编程(Metaprogramming)范…

Pascal Content数据集

如果您想使用Pascal Context数据集&#xff0c;请安装Detail&#xff0c;然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作&#xff1a; git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…

我用 GitHub 9.8k 的 Go 语言 2D 游戏引擎写了个游戏

前言 hi&#xff0c;大家好&#xff0c;这里是白泽。今天给大家分享一个 GitHub &#x1f31f;9.8k 的 Go 语言 2D 游戏引擎。 https://github.com/hajimehoshi/ebiten 引擎的贡献者依旧在积极维护&#xff0c;是一个兼具学习 & 娱乐的项目&#xff01; 为此我也用这个…

Prompt提示词教程 | 提示工程指南 | 提示词示例 入门篇

在上一节中&#xff0c;我们介绍并给出了如何赋能大语言模型的基本示例。如果还没看而且是刚入门的同学建议看下&#xff0c;有个基本概念。 Prompt提示词教程 | 提示工程指南 | 提示工程简介https://blog.csdn.net/HRG520JN/article/details/138523705在本节中&#xff0c;我…

结合kimi chat的爬虫实战思路

背景 想钻研一下项目组件&#xff0c;找找之后的学习方向。不能自以为是&#xff0c;所以借着网开源项目网站上公布的项目内容看一下&#xff0c;那些是我可以努力去学习的&#xff08;入门的&#xff09;。首先需要获取相关内容&#xff0c;于是爬取整理。 任务1&#xff1a…

Unity与C#的关系

第一&#xff0c;我们首先需要知道Unity与C#的关系是什么&#xff1f; 第二&#xff0c;我们要明白为什么Unity会使用C#&#xff0c;而不是C&#xff1f; 第三&#xff0c;我们需要知道Unity是怎么使用C#的&#xff1f; 第一点&#xff1a; 先说结论&#xff1a;C#是Unity用…

【Verilog】big_small_cnt

通用大小计数器 timescale 1ns / 1ps // // Company: // Engineer: wengf // Create Date: // Design Name: // Module Name: big_small_cnt // Project Name: // Target Devices: // Tool Versions: // Description: // Dependencies: // Revision: // Revision 0…

一起刷C语言菜鸟教程100题(15-26含解析)

五一过的好快&#xff0c;五天假期说没就没&#xff0c;因为一些事情耽搁到现在&#xff0c;不过还是要继续学习的&#xff0c;之后就照常更新&#xff0c;先说一下&#xff0c;这个100题是菜鸟教程里面的&#xff0c;但是有一些题&#xff0c;我加入了自己的理解&#xff0c;甚…

odoo实施之创建行业demo

创建数据库&#xff0c;添加公司数据 选择应用&#xff0c;获取15天免费试用 创建完成 设置客户公司logo 创建用户 更改用户语言 前置条件&#xff1a;配置邮件 开发模式下&#xff0c;额外信息 加载demo数据