<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>2025年人工智能与未来教育国际学术会议</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #2563eb;
--secondary-color: #64748b;
--accent-color: #f59e0b;
--text-dark: #1e293b;
--text-light: #64748b;
--bg-light: #f8fafc;
--border-color: #e2e8f0;
--success-color: #10b981;
--shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
--shadow-md: 0 4px 6px rgba(0,0,0,0.1);
--shadow-lg: 0 10px 15px rgba(0,0,0,0.1);
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header Styles */
header {
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(10px);
box-shadow: var(--shadow-md);
position: sticky;
top: 0;
z-index: 100;
animation: slideDown 0.5s ease-out;
}
@keyframes slideDown {
from {
transform: translateY(-100%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
background: linear-gradient(135deg, #667eea, #764ba2);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.nav-links {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-links a {
text-decoration: none;
color: var(--text-dark);
font-weight: 500;
transition: color 0.3s;
position: relative;
}
.nav-links a:hover {
color: var(--primary-color);
}
.nav-links a::after {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background: var(--primary-color);
transition: width 0.3s;
}
.nav-links a:hover::after {
width: 100%;
}
/* Hero Section */
.hero {
background: white;
padding: 4rem 0;
margin: 2rem 0;
border-radius: 20px;
box-shadow: var(--shadow-lg);
animation: fadeInUp 0.8s ease-out;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.hero-content {
text-align: center;
}
.hero h1 {
font-size: 3rem;
margin-bottom: 1rem;
background: linear-gradient(135deg, #667eea, #764ba2);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% {
transform: scale(1);
}
50% {
transform: scale(1.02);
}
}
.hero-subtitle {
font-size: 1.25rem;
color: var(--text-light);
margin-bottom: 2rem;
}
.conference-info {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.info-card {
background: var(--bg-light);
padding: 1.5rem;
border-radius: 10px;
border-left: 4px solid var(--primary-color);
transition: transform 0.3s, box-shadow 0.3s;
}
.info-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-md);
}
.info-card h3 {
color: var(--primary-color);
margin-bottom: 0.5rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
.info-card .icon {
width: 24px;
height: 24px;
display: inline-block;
}
/* Main Content */
main {
background: white;
border-radius: 20px;
padding: 3rem 0;
margin-bottom: 2rem;
box-shadow: var(--shadow-lg);
}
section {
margin-bottom: 4rem;
animation: fadeIn 1s ease-out;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
h2 {
font-size: 2rem;
margin-bottom: 1.5rem;
color: var(--text-dark);
position: relative;
padding-left: 1rem;
}
h2::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 30px;
background: linear-gradient(135deg, #667eea, #764ba2);
border-radius: 2px;
}
/* Table Styles */
.speakers-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
border-radius: 10px;
box-shadow: var(--shadow-sm);
}
.speakers-table thead {
background: linear-gradient(135deg, #667eea, #764ba2);
color: white;
}
.speakers-table th,
.speakers-table td {
padding: 1rem;
text-align: left;
}
.speakers-table tbody tr {
background: white;
transition: background 0.3s;
}
.speakers-table tbody tr:nth-child(even) {
background: var(--bg-light);
}
.speakers-table tbody tr:hover {
background: #f0f9ff;
transform: scale(1.01);
box-shadow: var(--shadow-sm);
}
.speaker-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
object-fit: cover;
border: 2px solid var(--border-color);
}
.speaker-info {
display: flex;
align-items: center;
gap: 1rem;
}
.topic-tag {
display: inline-block;
padding: 0.25rem 0.75rem;
background: var(--accent-color);
color: white;
border-radius: 20px;
font-size: 0.875rem;
font-weight: 500;
}
/* Schedule Table */
.schedule-container {
overflow-x: auto;
margin-top: 2rem;
}
.schedule-table {
width: 100%;
min-width: 600px;
border-collapse: separate;
border-spacing: 0;
border-radius: 10px;
overflow: hidden;
box-shadow: var(--shadow-sm);
}
.schedule-table thead {
background: var(--text-dark);
color: white;
}
.schedule-table th,
.schedule-table td {
padding: 1rem;
border: 1px solid var(--border-color);
}
.schedule-table tbody tr {
transition: background 0.3s;
}
.schedule-table tbody tr:hover {
background: #f8fafc;
}
.time-slot {
font-weight: 600;
color: var(--primary-color);
white-space: nowrap;
}
.session-type {
display: inline-block;
padding: 0.25rem 0.5rem;
border-radius: 4px;
font-size: 0.875rem;
font-weight: 500;
}
.keynote {
background: #fef3c7;
color: #92400e;
}
.workshop {
background: #dbeafe;
color: #1e40af;
}
.panel {
background: #e9d5ff;
color: #6b21a8;
}
/* Registration Form */
.registration-form {
background: var(--bg-light);
padding: 2rem;
border-radius: 10px;
margin-top: 2rem;
}
.form-group {
margin-bottom: 1.5rem;
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
color: var(--text-dark);
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 0.75rem;
border: 2px solid var(--border-color);
border-radius: 8px;
font-size: 1rem;
transition: border-color 0.3s, box-shadow 0.3s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}
.checkbox-group {
display: flex;
align-items: center;
gap: 0.5rem;
}
.checkbox-group input[type="checkbox"] {
width: auto;
}
.submit-btn {
background: linear-gradient(135deg, #667eea, #764ba2);
color: white;
padding: 1rem 2rem;
border: none;
border-radius: 8px;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
transition: transform 0.3s, box-shadow 0.3s;
width: 100%;
}
.submit-btn:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}
.submit-btn:active {
transform: translateY(0);
}
/* Stats Section */
.stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 2rem;
margin: 3rem 0;
}
.stat-card {
text-align: center;
padding: 2rem;
background: white;
border-radius: 10px;
box-shadow: var(--shadow-sm);
transition: transform 0.3s;
}
.stat-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-md);
}
.stat-number {
font-size: 2.5rem;
font-weight: bold;
background: linear-gradient(135deg, #667eea, #764ba2);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-label {
color: var(--text-light);
margin-top: 0.5rem;
}
/* Footer */
footer {
background: white;
padding: 2rem 0;
text-align: center;
border-radius: 20px 20px 0 0;
margin-top: 2rem;
}
.footer-content {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
gap: 2rem;
margin-bottom: 2rem;
}
.footer-section h4 {
margin-bottom: 1rem;
color: var(--text-dark);
}
.footer-section ul {
list-style: none;
}
.footer-section a {
color: var(--text-light);
text-decoration: none;
transition: color 0.3s;
}
.footer-section a:hover {
color: var(--primary-color);
}
/* Responsive Design */
@media (max-width: 768px) {
.nav-links {
display: none;
}
.hero h1 {
font-size: 2rem;
}
.form-row {
grid-template-columns: 1fr;
}
.conference-info {
grid-template-columns: 1fr;
}
.stats {
grid-template-columns: repeat(2, 1fr);
}
}
/* Toast Notification */
.toast {
position: fixed;
bottom: 20px;
right: 20px;
background: var(--success-color);
color: white;
padding: 1rem 1.5rem;
border-radius: 8px;
box-shadow: var(--shadow-lg);
transform: translateX(400px);
transition: transform 0.3s;
z-index: 1000;
}
.toast.show {
transform: translateX(0);
}
/* Loading Animation */
.loading {
display: none;
text-align: center;
padding: 2rem;
}
.loading.show {
display: block;
}
.spinner {
border: 3px solid var(--border-color);
border-top: 3px solid var(--primary-color);
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
margin: 0 auto;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<header>
<nav class="container">
<div class="logo">AI Edu 2025</div>
<ul class="nav-links">
<li><a href="#home">首页</a></li>
<li><a href="#speakers">演讲嘉宾</a></li>
<li><a href="#schedule">会议日程</a></li>
<li><a href="#registration">注册参会</a></li>
<li><a href="#contact">联系我们</a></li>
</ul>
</nav>
</header>
<div class="container">
<section class="hero" id="home">
<div class="hero-content">
<h1>2025年人工智能与未来教育国际学术会议</h1>
<p class="hero-subtitle">探索AI技术如何重塑教育未来,共创智慧学习新纪元</p>
<div class="stats">
<div class="stat-card">
<div class="stat-number" data-target="500">0</div>
<div class="stat-label">参会专家</div>
</div>
<div class="stat-card">
<div class="stat-number" data-target="50">0</div>
<div class="stat-label">主题演讲</div>
</div>
<div class="stat-card">
<div class="stat-number" data-target="30">0</div>
<div class="stat-label">合作院校</div>
</div>
<div class="stat-card">
<div class="stat-number" data-target="3">0</div>
<div class="stat-label">会议天数</div>
</div>
</div>
<div class="conference-info">
<div class="info-card">
<h3>
<span class="icon">📅</span>
会议时间
</h3>
<p>2025年12月15日 - 17日</p>
<p>为期三天的学术盛宴</p>
</div>
<div class="info-card">
<h3>
<span class="icon">📍</span>
会议地点
</h3>
<p>北京国际会议中心</p>
<p>朝阳区北辰东路8号</p>
</div>
<div class="info-card">
<h3>
<span class="icon">🎯</span>
会议主题
</h3>
<p>AI赋能教育创新</p>
<p>智能化教学变革</p>
</div>
<div class="info-card">
<h3>
<span class="icon">👥</span>
参会规模
</h3>
<p>预计1000+参会者</p>
<p>来自全球30+国家</p>
</div>
</div>
</div>
</section>
<main>
<section id="speakers">
<h2>特邀演讲嘉宾</h2>
<table class="speakers-table">
<thead>
<tr>
<th>嘉宾信息</th>
<th>所属机构</th>
<th>演讲主题</th>
<th>演讲时间</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="speaker-info">
<img src="https://picsum.photos/seed/speaker1/50/50.jpg" alt="李明教授" class="speaker-avatar">
<div>
<strong>李明教授</strong><br>
<small>人工智能教育专家</small>
</div>
</div>
</td>
<td>清华大学</td>
<td><span class="topic-tag">主旨演讲</span> AI驱动的个性化学习系统</td>
<td>12月15日 09:00</td>
</tr>
<tr>
<td>
<div class="speaker-info">
<img src="https://picsum.photos/seed/speaker2/50/50.jpg" alt="Emma Watson博士" class="speaker-avatar">
<div>
<strong>Emma Watson博士</strong><br>
<small>教育技术研究员</small>
</div>
</div>
</td>
<td>MIT</td>
<td><span class="topic-tag">主旨演讲</span> 虚拟现实在远程教育中的应用</td>
<td>12月15日 14:00</td>
</tr>
<tr>
<td>
<div class="speaker-info">
<img src="https://picsum.photos/seed/speaker3/50/50.jpg" alt="张伟教授" class="speaker-avatar">
<div>
<strong>张伟教授</strong><br>
<small>机器学习专家</small>
</div>
</div>
</td>
<td>北京大学</td>
<td><span class="topic-tag">专题报告</span> 智能评测系统的发展趋势</td>
<td>12月16日 10:30</td>
</tr>
<tr>
<td>
<div class="speaker-info">
<img src="https://picsum.photos/seed/speaker4/50/50.jpg" alt="John Smith教授" class="speaker-avatar">
<div>
<strong>John Smith教授</strong><br>
<small>认知科学专家</small>
</div>
</div>
</td>
<td>斯坦福大学</td>
<td><span class="topic-tag">专题报告</span> 大脑学习机制与AI教学</td>
<td>12月16日 15:00</td>
</tr>
<tr>
<td>
<div class="speaker-info">
<img src="https://picsum.photos/seed/speaker5/50/50.jpg" alt="王芳博士" class="speaker-avatar">
<div>
<strong>王芳博士</strong><br>
<small>教育心理学专家</small>
</div>
</div>
</td>
<td>北京师范大学</td>
<td><span class="topic-tag">工作坊</span> 情感计算在教育中的应用</td>
<td>12月17日 09:30</td>
</tr>
</tbody>
</table>
</section>
<section id="schedule">
<h2>会议日程安排</h2>
<div class="schedule-container">
<table class="schedule-table">
<thead>
<tr>
<th>时间</th>
<th>12月15日</th>
<th>12月16日</th>
<th>12月17日</th>
</tr>
</thead>
<tbody>
<tr>
<td class="time-slot">08:30-09:00</td>
<td>签到注册</td>
<td>签到注册</td>
<td>签到注册</td>
</tr>
<tr>
<td class="time-slot">09:00-10:30</td>
<td><span class="session-type keynote">主旨演讲</span><br>AI驱动的个性化学习系统</td>
<td><span class="session-type workshop">工作坊</span><br>智能教学工具实践</td>
<td><span class="session-type workshop">工作坊</span><br>情感计算在教育中的应用</td>
</tr>
<tr>
<td class="time-slot">10:30-11:00</td>
<td>茶歇交流</td>
<td>茶歇交流</td>
<td>茶歇交流</td>
</tr>
<tr>
<td class="time-slot">11:00-12:00</td>
<td><span class="session-type panel">圆桌讨论</span><br>AI伦理与教育公平</td>
<td><span class="session-type keynote">专题报告</span><br>智能评测系统的发展趋势</td>
<td><span class="session-type panel">圆桌讨论</span><br>未来教育模式探索</td>
</tr>
<tr>
<td class="time-slot">12:00-14:00</td>
<td>午餐休息</td>
<td>午餐休息</td>
<td>午餐休息</td>
</tr>
<tr>
<td class="time-slot">14:00-15:30</td>
<td><span class="session-type keynote">主旨演讲</span><br>虚拟现实在远程教育中的应用</td>
<td><span class="session-type workshop">工作坊</span><br>数据分析与教学优化</td>
<td><span class="session-type keynote">闭幕演讲</span><br>AI教育的未来展望</td>
</tr>
<tr>
<td class="time-slot">15:30-16:00</td>
<td>茶歇交流</td>
<td>茶歇交流</td>
<td>闭幕式</td>
</tr>
<tr>
<td class="time-slot">16:00-17:30</td>
<td><span class="session-type workshop">工作坊</span><br>AI教学案例分享</td>
<td><span class="session-type keynote">专题报告</span><br>大脑学习机制与AI教学</td>
<td>自由交流</td>
</tr>
</tbody>
</table>
</div>
</section>
<section id="registration">
<h2>会议注册</h2>
<div class="registration-form">
<form id="registrationForm">
<div class="form-row">
<div class="form-group">
<label for="name">姓名 *</label>
<input type="text" id="name" name="name" required placeholder="请输入您的姓名">
</div>
<div class="form-group">
<label for="email">邮箱 *</label>
<input type="email" id="email" name="email" required placeholder="example@email.com">
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="phone">手机号码 *</label>
<input type="tel" id="phone" name="phone" required placeholder="请输入手机号码">
</div>
<div class="form-group">
<label for="institution">所属机构 *</label>
<input type="text" id="institution" name="institution" required placeholder="学校/公司名称">
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="title">职位/职称</label>
<input type="text" id="title" name="title" placeholder="如:教授、研究员、学生等">
</div>
<div class="form-group">
<label for="ticket">参会类型 *</label>
<select id="ticket" name="ticket" required>
<option value="">请选择参会类型</option>
<option value="regular">普通参会者 - ¥2000</option>
<option value="student">学生参会者 - ¥1000</option>
<option value="group">团体参会(5人以上) - ¥1500/人</option>
<option value="online">线上参会 - ¥500</option>
</select>
</div>
</div>
<div class="form-group">
<label for="interest">感兴趣的议题(可多选)</label>
<div class="checkbox-group">
<input type="checkbox" id="topic1" name="interest" value="ai-learning">
<label for="topic1">AI个性化学习</label>
</div>
<div class="checkbox-group">
<input type="checkbox" id="topic2" name="interest" value="vr-education">
<label for="topic2">虚拟现实教育</label>
</div>
<div class="checkbox-group">
<input type="checkbox" id="topic3" name="interest" value="smart-assessment">
<label for="topic3">智能评测系统</label>
</div>
<div class="checkbox-group">
<input type="checkbox" id="topic4" name="interest" value="data-analysis">
<label for="topic4">教育数据分析</label>
</div>
</div>
<div class="form-group">
<label for="requirements">特殊需求</label>
<textarea id="requirements" name="requirements" rows="3" placeholder="如有特殊饮食需求、无障碍需求等,请在此说明"></textarea>
</div>
<div class="form-group">
<div class="checkbox-group">
<input type="checkbox" id="agreement" name="agreement" required>
<label for="agreement">我已阅读并同意会议条款和隐私政策 *</label>
</div>
</div>
<button type="submit" class="submit-btn">提交注册</button>
</form>
<div class="loading" id="loading">
<div class="spinner"></div>
<p>正在处理您的注册信息...</p>
</div>
</div>
</section>
</main>
<footer id="contact">
<div class="container">
<div class="footer-content">
<div class="footer-section">
<h4>联系我们</h4>
<ul>
<li>📧 conference@aiedu2025.org</li>
<li>📞 +86 10 8888 8888</li>
<li>📍 北京市朝阳区北辰东路8号</li>
</ul>
</div>
<div class="footer-section">
<h4>快速链接</h4>
<ul>
<li><a href="#speakers">演讲嘉宾</a></li>
<li><a href="#schedule">会议日程</a></li>
<li><a href="#registration">注册参会</a></li>
<li><a href="#">会议论文集</a></li>
</ul>
</div>
<div class="footer-section">
<h4>关注我们</h4>
<ul>
<li><a href="#">微信公众号:AI教育2025</a></li>
<li><a href="#">微博:@AI教育国际会议</a></li>
<li><a href="#">LinkedIn:AI Edu Conference</a></li>
</ul>
</div>
</div>
<p>© 2025 人工智能与未来教育国际学术会议. All rights reserved.</p>
</div>
</footer>
</div>
<div class="toast" id="toast">
注册成功!我们将尽快与您联系。
</div>
<script>
// Smooth scrolling for navigation links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}
});
});
// Animated counter for stats
const animateCounter = (element) => {
const target = parseInt(element.getAttribute('data-target'));
const duration = 2000;
const increment = target / (duration / 16);
let current = 0;
const updateCounter = () => {
current += increment;
if (current < target) {
element.textContent = Math.ceil(current);
requestAnimationFrame(updateCounter);
} else {
element.textContent = target;
}
};
updateCounter();
};
// Intersection Observer for stats animation
const observerOptions = {
threshold: 0.5,
rootMargin: '0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const statNumbers = entry.target.querySelectorAll('.stat-number');
statNumbers.forEach(num => {
if (num.textContent === '0') {
animateCounter(num);
}
});
observer.unobserve(entry.target);
}
});
}, observerOptions);
const statsSection = document.querySelector('.stats');
if (statsSection) {
observer.observe(statsSection);
}
// Form submission handling
const registrationForm = document.getElementById('registrationForm');
const loading = document.getElementById('loading');
const toast = document.getElementById('toast');
registrationForm.addEventListener('submit', async (e) => {
e.preventDefault();
// Show loading
loading.classList.add('show');
// Simulate API call
await new Promise(resolve => setTimeout(resolve, 2000));
// Hide loading
loading.classList.remove('show');
// Show success toast
toast.classList.add('show');
// Reset form
registrationForm.reset();
// Hide toast after 3 seconds
setTimeout(() => {
toast.classList.remove('show');
}, 3000);
});
// Form validation
const inputs = registrationForm.querySelectorAll('input[required], select[required]');
inputs.forEach(input => {
input.addEventListener('blur', () => {
if (!input.value) {
input.style.borderColor = '#ef4444';
} else {
input.style.borderColor = '#10b981';
}
});
});
// Phone number validation
const phoneInput = document.getElementById('phone');
phoneInput.addEventListener('input', (e) => {
const value = e.target.value.replace(/\D/g, '');
e.target.value = value;
});
// Email validation
const emailInput = document.getElementById('email');
emailInput.addEventListener('blur', () => {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(emailInput.value) && emailInput.value) {
emailInput.style.borderColor = '#ef4444';
emailInput.setCustomValidity('请输入有效的邮箱地址');
} else {
emailInput.setCustomValidity('');
}
});
// Add hover effect to table rows
const tableRows = document.querySelectorAll('tbody tr');
tableRows.forEach(row => {
row.addEventListener('mouseenter', () => {
row.style.cursor = 'pointer';
});
});
// Dynamic ticket pricing display
const ticketSelect = document.getElementById('ticket');
ticketSelect.addEventListener('change', (e) => {
const selectedOption = e.target.options[e.target.selectedIndex];
if (selectedOption.value) {
const price = selectedOption.text.split(' - ')[1];
console.log('Selected price:', price);
}
});
// Add parallax effect to hero section
window.addEventListener('scroll', () => {
const scrolled = window.pageYOffset;
const hero = document.querySelector('.hero');
if (hero) {
hero.style.transform = `translateY(${scrolled * 0.5}px)`;
}
});
// Add loading animation on page load
window.addEventListener('load', () => {
document.body.style.opacity = '0';
setTimeout(() => {
document.body.style.transition = 'opacity 0.5s';
document.body.style.opacity = '1';
}, 100);
});
</script>
</body>
</html>
HTML
格式化
支持Emmet,输入 p 后按 Tab键试试吧!
<head> ... </head>
<body>
</body>