返回
从小白到高手,不容错过的5个前端练手项目,内附源码
前端
2023-06-22 21:34:16
走进前端世界:五个练手项目助你轻松上手
踏入前端开发的奇妙世界,成为一名合格的开发者绝非易事。除了扎实的理论基础,动手实践才是磨练技术的捷径。本文精心挑选了五个适合前端新手的练手项目,涵盖 HTML、CSS、JavaScript 和 Canvas 等关键技术,助你轻松入门前端开发。
一、跑马灯:动画的魔力
跑马灯效果展现了 CSS 动画的魅力。通过一个 div 容器,设置文字内容,再利用 animation 属性,让文字不断向左滚动,宛如跑马灯一般。
源代码:
<div id="marquee">
<p>这是跑马灯文字内容</p>
</div>
#marquee {
width: 100%;
height: 50px;
overflow: hidden;
}
#marquee p {
width: 100%;
animation: marquee 10s linear infinite;
}
@keyframes marquee {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
二、彩虹爱心:Canvas 的艺术
彩虹爱心展现了 Canvas 绘图的精妙。利用 Canvas 绘制一个爱心形状,并填充上一个渐变,就能得到一个绚丽的彩虹爱心。
源代码:
<canvas id="canvas"></canvas>
#canvas {
width: 300px;
height: 300px;
}
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// 绘制爱心形状
ctx.beginPath();
ctx.moveTo(150, 50);
ctx.quadraticCurveTo(250, 50, 250, 150);
ctx.quadraticCurveTo(250, 250, 150, 250);
ctx.quadraticCurveTo(50, 250, 50, 150);
ctx.quadraticCurveTo(50, 50, 150, 50);
ctx.closePath();
// 填充爱心形状
ctx.fillStyle = 'linear-gradient(to bottom, red, orange, yellow, green, blue, indigo, violet)';
ctx.fill();
三、闹钟:时间的掌控者
闹钟项目展示了 JavaScript 获取时间的能力。通过获取当前时间,并在闹钟时间到达时触发响铃声,用户可以创建自己的闹钟。
源代码:
<div id="clock">
<div id="time"></div>
<div id="alarm"></div>
</div>
#clock {
width: 300px;
height: 300px;
}
#time {
font-size: 50px;
text-align: center;
}
#alarm {
font-size: 30px;
text-align: center;
}
const clock = document.getElementById('clock');
const time = document.getElementById('time');
const alarm = document.getElementById('alarm');
// 获取当前时间
let date = new Date();
// 更新时间显示
function updateTime() {
time.innerHTML = date.toLocaleTimeString();
}
// 设置闹钟时间
function setAlarm(hours, minutes) {
alarm.innerHTML = `闹钟时间:${hours}:${minutes}`;
}
// 检查闹钟是否到达
function checkAlarm() {
if (date.getHours() === hours && date.getMinutes() === minutes) {
alarm.innerHTML = '闹钟响铃!';
}
}
// 定时器每秒更新时间和检查闹钟
setInterval(updateTime, 1000);
四、自制笔记本:笔记的管理者
自制笔记本项目展示了 HTML、CSS 和 JavaScript 的结合。通过创建笔记本界面,用户可以添加、删除和编辑笔记,从而有效管理他们的记录。
源代码:
<div id="notebook">
<div id="notes-list">
<ul>
<li>笔记一</li>
<li>笔记二</li>
<li>笔记三</li>
</ul>
</div>
<div id="notes-content">
<textarea id="note-content"></textarea>
</div>
</div>
#notebook {
width: 600px;
height: 400px;
}
#notes-list {
width: 200px;
float: left;
}
#notes-content {
width: 400px;
float: right;
}
#note-content {
width: 100%;
height: 300px;
}
const notebook = document.getElementById('notebook');
const notesList = document.getElementById('notes-list');
const notesContent = document.getElementById('notes-content');
// 获取所有笔记
let notes = [];
// 添加笔记
function addNote() {
const note = document.createElement('li');
note.innerHTML = '新笔记';
notesList.appendChild(note);
notes.push(note);
}
// 删除笔记
function deleteNote(note) {
notesList.removeChild(note);
notes.splice(notes.indexOf(note), 1);
}
// 编辑笔记
function editNote(note, content) {
note.innerHTML = content;
}
// 加载笔记
function loadNotes() {
for (const note of notes) {
notesList.appendChild(note);
}
}
// 保存笔记
function saveNotes() {
for (const note of notes) {
localStorage.setItem(note.innerHTML, note.innerHTML);
}
}
// 初始化笔记本
function initNotebook() {
loadNotes();
notesList.addEventListener('click', function(event) {
const note = event.target;
if (note.tagName === 'LI') {
const content = localStorage.getItem(note.innerHTML);
notesContent.value = content;
}
});
notesContent.addEventListener('input', function(event) {
const content = event.target.value;
const note = notesList.children[notesContent.selectedIndex];
editNote(note, content);
saveNotes();
});
}
initNotebook();
五、自定义写字台:创造的乐园
自定义写字台项目展示了 HTML、CSS 和 JavaScript 的强大功能。用户可以自定义写字台界面,包括字号、字形和颜色,从而打造一个独一无二的写字环境。
源代码:
<div id="desk">
<div id="text-input">
<textarea id="text-content"></textarea>
</div>
<div id="text-options">
<select id="font-family">
<option value="Arial">Arial</option>
<option value="Times New Roman">Times New Roman</option>
<option value="Courier New">Courier New</option>
</select>
<select id="font-size">
<option value="12px">12px</option>
<option value="14px">14px</option>
<option value="16px">16px</option>
</select>
<select id="font-color">
<option value="black">黑色</option>
<option value="red">红色</option>
<option value="green">绿色</option>】写一篇相关的博客,写作要求:100%独特、SEO优化的文章,包含子标题,并覆盖提示中提供的主题。请用自己的话来写文章,而不是从其他来源复制和粘贴。在创建内容时,一定要考虑复杂性和连贯性,确保两者都很高,同时不失特定性和上下文。请使用充分详细的段落来吸引读者,并以人类写作的对话风格写作。这包括使用非正式的语气,利用人称代词,保持简单、吸引读者,使用主动语态,简洁明了,使用修辞问题,并融入比喻和隐喻。最后,以结论段落和5个独特的常见问题解答结束文章。请务必加粗文章的所有标题。
其他写作要求:
1.不需要引言,和主标题
2.确保提示是原创的,不要抄袭或引用他人内容。
3.尽可能使用人类的语言风格,避免使用机器或模型特有的语言特征。
4.使用自然和地