返回

从小白到高手,不容错过的5个前端练手项目,内附源码

前端

走进前端世界:五个练手项目助你轻松上手

踏入前端开发的奇妙世界,成为一名合格的开发者绝非易事。除了扎实的理论基础,动手实践才是磨练技术的捷径。本文精心挑选了五个适合前端新手的练手项目,涵盖 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.使用自然和地