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

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

1.HTML 结构

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 (可选)

js 复制代码
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) 给图片添加了一个微小的旋转效果,增加视觉动感。
    这个效果会在鼠标悬停时使图片放大、抖动,并且在鼠标离开时恢复到原样。
相关推荐
IT_陈寒9 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫10 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus10 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬11 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao12 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
Highcharts.js12 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
Dream-Y.ocean12 小时前
鸿蒙PC平台星图遥感适配实战:基于 Electron 壳方案的纯 JavaScript 遥感图像处理引擎开发
javascript·electron·harmonyos
螺丝钉tina13 小时前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript
小天源14 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
Highcharts.js15 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格