使用CSS 和 JavaScript 实现鼠标悬停时图片放大、缩小和抖动

embedded/2025/1/2 5:46:36/

  我们可以通过 CSS 和 JavaScript 来实现鼠标悬停时图片放大、缩小和抖动的效果。以下是一个简单的实现方式:

1.HTML 结构

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>鼠标悬停效果</title><link rel="stylesheet" href="styles.css">
</head>
<body><div class="image-container"><img src="your-image.jpg" alt="Image" class="hover-image"></div><script src="script.js"></script>
</body>
</html>

2.CSS 样式

css">/* 基本样式 */
.image-container {display: inline-block;position: relative;overflow: hidden;
}.hover-image {width: 100%;transition: transform 0.3s ease, filter 0.1s ease;
}/* 鼠标悬停时的放大和抖动效果 */
.image-container:hover .hover-image {transform: scale(1.2) rotate(5deg); /* 放大并轻微旋转 */animation: shake 0.5s ease-in-out infinite;
}/* 抖动动画 */
@keyframes shake {0% {transform: scale(1.2) rotate(5deg) translateX(0);}25% {transform: scale(1.2) rotate(5deg) translateX(-5px);}50% {transform: scale(1.2) rotate(5deg) translateX(5px);}75% {transform: scale(1.2) rotate(5deg) translateX(-5px);}100% {transform: scale(1.2) rotate(5deg) translateX(0);}
}

3.JavaScript (可选)

const image = document.querySelector('.hover-image');image.addEventListener('mouseenter', () => {image.classList.add('hover');
});image.addEventListener('mouseleave', () => {image.classList.remove('hover');
});

说明:

  • 放大效果:使用 transform: scale(1.2) 来放大图片。你可以根据需要调整放大的比例。
  • 抖动效果:使用 @keyframes 定义了一个简单的抖动动画,通过 translateX 来实现图片左右的抖动。
  • 旋转效果:rotate(5deg) 给图片添加了一个微小的旋转效果,增加视觉动感。
    这个效果会在鼠标悬停时使图片放大、抖动,并且在鼠标离开时恢复到原样。

http://www.ppmy.cn/embedded/150251.html

相关文章

使用uWSGI将Flask应用部署到生产环境

使用uWSGI将Flask应用部署到生产环境&#xff1a; 1、安装uWSGI conda install -c conda-forge uwsgi&#xff08;pip install uwsgi会报错&#xff09; 2、配置uWSGI 在python程序的同一文件夹下创建 uwsgi.ini文件&#xff0c;文件内容如下表。 需要按照实际情况修改文件名称…

电脑中缺失的nvrtc64_90.dll文件如何修复?

一、文件丢失问题 案例&#xff1a;nvrtc64_90.dll文件缺失 问题分析&#xff1a; nvrtc64_90.dll是NVIDIA CUDA Runtime Compilation库的一部分&#xff0c;通常与NVIDIA的CUDA Toolkit或相关驱动程序一起安装。如果该文件丢失&#xff0c;可能会导致基于CUDA的应用程序&…

Unity3D 基于GraphView实现的节点编辑器框架详解

前言 在Unity3D游戏开发中&#xff0c;节点编辑器是一种强大的工具&#xff0c;它允许开发者以可视化的方式创建和编辑复杂的逻辑和流程。Unity提供了一个强大的UI工具包——GraphView&#xff0c;它使得创建自定义节点编辑器变得相对简单。本文将详细介绍如何使用GraphView实…

数据的简单处理——pandas模块——读取数据(Excel和csv格式)

使用Pandas模块可以从多种类型的文件中读取数据。本节主要从Excel和csv格式文件中读取数据为例&#xff0c;进行练习。 一、读取数据Excel格式 主要包括&#xff0c;读取完整表格、读取指定行数据、读取指定列数据。 二、读取数据csv格式 主要包括&#xff0c;读取完整表格…

ubuntu 20.04 国内源安装docker

先更新软件包&#xff0c;安装备要apt软件 # 更新软件包索引 sudo apt-get update# 安装需要的软件包以使apt能够通过HTTPS使用仓库 sudo apt-get install ca-certificates curl gnupg lsb-release使用阿里云源 # 添加阿里云官方GPG密钥 curl -fsSL http://mirrors.aliyun.co…

在C#中实现支持LINQ查询的自定义集合类

在C#中&#xff0c;若要使自定义集合类支持LINQ查询&#xff0c;需要实现一些特定的接口&#xff0c;这些接口通常与集合数据的枚举和操作有关。以下是一个基本步骤指南&#xff0c;用于创建一个支持LINQ查询的自定义集合类&#xff1a; 实现IEnumerable<T>接口&#xff…

Qt 中实现系统主题感知

【写在前面】 在现代桌面应用程序开发中&#xff0c;系统主题感知是一项重要的功能&#xff0c;它使得应用程序能够根据用户的系统主题设置&#xff08;如深色模式或浅色模式&#xff09;自动调整其外观。 Qt 作为一个跨平台的C图形用户界面应用程序开发框架&#xff0c;提供…

CentOS中使用SSH远程登录

CentOS中使用SSH远程登录 CentOS中使用SSH远程登录 准备工作SSH概述SSH服务的安装与启动建立SSH连接SSH配置文件修改SSH默认端口SSH文件传输 准备工作 两台安装CentOS系统的虚拟机 客户机&#xff08;192.168.239.128&#xff09; 服务器&#xff08;192.168.239.129&#…