CSS动画(个人资料卡片)

1.整体效果

https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa63Oz8IaRI51Mw7mY02LHmnpXicG4icA3ERN1MVszMdNafsgV3xaVHLhMA6avquSJux4CLV8uggtfbw/640?wx_fmt=gif\&from=appmsg\&wxfrom=13
今天呈现的不仅是一个个人介绍界面,而是一次交互式的视觉体验。精心编排的HTML与CSS赋予了页面动感与美感,动画效果让每个元素都鲜活起来,吸引着访客的目光。

更进一步,JavaScript的加入让这个界面变得生动,响应每一次点击,带来意想不到的动画变化。

2.完整代码

HTML

html 复制代码
<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>个人页面</title>  
    <link rel="stylesheet" type="text/css" href="6_18.css">  
</head>  
  
<body>  
<div class="profile-container">  
    <img src="https://q1.itc.cn/q_70/images03/20240609/1c1be14298be4dbe978e55bde6e958b0.jpeg" alt="头像" class="avatar">  
    <h1>shichengfu</h1>  
    <p>你好!我是前端开发新手,正在学习HTML和CSS。</p>  
    <div class="social-links">  
        <a href="#" target="_blank">GitHub</a>  
        <a href="#" target="_blank">Twitter</a>  
    </div>  
  
</div>  
<script rel="6_18,js"></script>  
</body>  
</html>

CSS

css 复制代码
body {  
    font-family: Arial, sans-serif;  
    background-color: #f4f4f4;  
    margin: 0;  
    display: flex;  
    justify-content: center;  
    align-items: center;  
    height: 100vh;  
    animation: backgroundFade 10s infinite alternate;  
}  
  
@keyframes backgroundFade {  
    0% { background-color: #f4f4f4; }  
    100% { background-color: #d4e6f1; }  
}  
  
.profile-container {  
    background-color: white;  
    padding: 20px;  
    border-radius: 10px;  
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);  
    text-align: center;  
    max-width: 400px;  
    width: 100%;  
    transform: scale(0.9);  
    transition: transform 0.3s;  
}  
  
.hasClicked{  
    border:1px solid orange  
}  
  
.profile-container:hover {  
    transform: scale(1);  
}  
  
.avatar {  
    width: 100px;  
    height: 100px;  
    border-radius: 50%;  
    margin-bottom: 20px;  
    animation: rotate 4s linear infinite;  
}  
  
@keyframes rotate {  
    0% { transform: rotate(0deg); }  
    100% { transform: rotate(360deg); }  
}  
  
h1 {  
    font-size: 24px;  
    margin: 0 0 10px;  
}  
  
p {  
    color: #666;  
    margin: 0 0 20px;  
}  
  
.social-links a {  
    display: inline-block;  
    margin: 0 10px;  
    color: #3498db;  
    text-decoration: none;  
    position: relative;  
    transition: color 0.3s;  
}  
  
.social-links a::after {  
    content: '';  
    display: block;  
    width: 100%;  
    height: 2px;  
    background-color: #3498db;  
    position: absolute;  
    left: 0;  
    bottom: -5px;  
    transform: scaleX(0);  
    transition: transform 0.3s;  
}  
  
.social-links a:hover {  
    color: #2980b9;  
}  
  
.social-links a:hover::after {  
    transform: scaleX(1);  
}

JavaScript

javascript 复制代码
/**  
 * 当文档加载完成时,添加事件监听器以实现个人资料容器的点击交互效果。  
 * 此函数等待文档完全加载后执行,确保所选元素已经存在于DOM中。  
 */  
document.addEventListener("DOMContentLoaded", function() {  
    // 选择页面中个人资料容器的元素,为后续的交互逻辑做准备。  
    const profileContainer = document.querySelector('.profile-container');  
  
    /**  
     * 为个人资料容器添加点击事件监听器。  
     * 当元素被点击时,切换其上的 'clicked' 类,以实现展开或收起的效果。  
     */  
    profileContainer.addEventListener('click', function() {  
        // 切换 'clicked' 类,实现个人资料容器的展开和收起交互。  
        profileContainer.classList.toggle('hasClicked');  
    });  
});
相关推荐
jump_jump2 分钟前
手写一个 Askama 模板压缩工具
前端·性能优化·rust
be or not to be16 分钟前
HTML入门系列:从图片到表单,再到音视频的完整实践
前端·html·音视频
90后的晨仔1 小时前
在macOS上无缝整合:为Claude Code配置魔搭社区免费API完全指南
前端
沿着路走到底1 小时前
JS事件循环
java·前端·javascript
子春一22 小时前
Flutter 2025 可访问性(Accessibility)工程体系:从合规达标到包容设计,打造人人可用的数字产品
前端·javascript·flutter
白兰地空瓶2 小时前
别再只会调 API 了!LangChain.js 才是前端 AI 工程化的真正起点
前端·langchain
jlspcsdn3 小时前
20251222项目练习
前端·javascript·html
行走的陀螺仪3 小时前
Sass 详细指南
前端·css·rust·sass
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 小时前
React 怎么区分导入的是组件还是函数,或者是对象
前端·react.js·前端框架
LYFlied3 小时前
【每日算法】LeetCode 136. 只出现一次的数字
前端·算法·leetcode·面试·职场和发展