如何实现鼠标放在图片上出现文字说明效果?

最近在浏览网页时,看到一些图片,鼠标一放上去呢,就会有说明文字“浮”上来,移开又“沉”下去,感觉好炫!自己就在网上找实现代码啊,看看事件是怎么实现的!然后就找到了如下的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset=" utf-8">
    <meta name="author" content="http://www.softwhy.com/" />
    <title>蚂蚁部落</title>
    <style type="text/css">
        .main{
            width:738px;
            height:280px;
            margin:0px auto;
            border:5px solid #696;
            position:relative;
        }
        a{text-decoration:none}
        .main .cite{
            width:738px;
            position:absolute;
            bottom:0px;
            left:0px;
            text-align:center;
            -moz-opacity:0.5;
            filter:alpha(opacity=50);
            opacity:0.5;
            background:#333;
            border-bottom:2px solid #000;
           
### 创建包含文本和图像的网页 为了实现既显示文字又展示图片效果,可以采用HTML与CSS相结合的方式。对于希望在鼠标悬停于特定区域(比如一张图片)之上时显示出一段描述性的文字,则可以通过设置`<div>`容器来包裹 `<img>`标签以及用于呈现说明的文字元素,如`<p>`或者带有自定义类名的其他标签。 #### 使用纯 HTML 和 CSS 实现悬浮提示功能 通过调整层叠样式表(CSS),能够轻松达成当用户的光标移动到指定位置上方时触发视觉变化的目的。下面是一个简单的例子: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image Hover Text Example</title> <style type="text/css"> .container { position: relative; display: inline-block; } .image-text { visibility: hidden; background-color: rgba(0, 0, 0, 0.7); color: white; padding: 5px 10px; border-radius: 6px; font-size: smaller; transition: all 0.3s ease-in-out; opacity: 0; position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); } .container:hover .image-text { visibility: visible; opacity: 1; } </style> </head> <body> <div class="container"> <img src="images/example.jpg" alt="Example Image"/> <span class="image-text">这是一张示例图片。</span> </div> </body> </html> ``` 此代码片段展示了如何仅使用HTML和CSS创建一个具有悬停效果的组件[^1]。 当用户将鼠标指针放在图片上时,隐藏的文字将会显现出来并逐渐变得透明度增加至完全可见状态;一旦移开鼠标,这些字体会再次淡出直至不可见。 此外,还可以考虑引入更复杂的动画效果以增强用户体验。例如,让文字不仅简单地出现消失,而是伴随着某种动态过程,像从一侧滑入或放大缩小等动作。这类高级特性通常依赖JavaScript库的支持,但在某些情况下也可以借助纯粹的CSS属性变换来完成基本版本的设计[^3]。
```markdown # 题目重述 实现一个3D卡片,当鼠标悬停在图片上时,卡片发生翻转动画。 # 详解 要实现“**鼠标悬停时卡片翻转**”,需将动画触发方式从自动播放改为基于 `:hover` 的状态控制。使用CSS的 `transform` 和 `transition` 实现平滑过渡效果。 以下是完整实现代码: ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <title>鼠标悬停3D卡片翻转</title> <style> .card-container { width: 200px; height: 300px; perspective: 1000px; margin: 100px auto; } .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.6s ease; cursor: pointer; border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); } .card:hover { transform: rotateY(180deg); } .card-front, .card-back { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; align-items: center; justify-content: center; font-size: 24px; border-radius: 10px; } .card-front { background-color: #ffcccc; color: #333; } .card-back { background-color: #ccffcc; color: #333; transform: rotateY(180deg); } </style> </head> <body> <div class="card-container"> <div class="card"> <div class="card-front">正面内容</div> <div class="card-back">背面内容</div> </div> </div> </body> </html> ``` ### 功能说明: - 使用 `transition` 替代 `animation`,实现**仅在鼠标悬停时触发翻转**。 - `.card:hover` 触发 `rotateY(180deg)`,使卡片翻转。 - `.card-back` 初始为 `rotateY(180deg)`,确保背面朝后,避免文字镜像显示。 - `backface-visibility: hidden` 确保背面不可见时不会透出。 # 知识点(列出解答该问题需要的知识点) 1. **CSS `:hover` 伪类**:用于监听鼠标悬停状态,触发动画或样式变化。 2. **`transition` 过渡动画**:定义属性变化的持续时间与缓动效果实现平滑翻转。 3. **`transform` 与 `preserve-3d`**:配合使用实现3D空间中的旋转效果,保持立体感。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值