当前位置:首页 > JavaScript

js实现led

2026-03-14 23:12:43JavaScript

LED 效果实现方法

使用 JavaScript 实现 LED 效果可以通过多种方式完成,以下是几种常见的方法:

HTML/CSS 结构

<div class="led" id="led"></div>

CSS 样式

.led {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: grey;
}

基础 JavaScript 控制

js实现led

const led = document.getElementById('led');
let isOn = false;

function toggleLed() {
  isOn = !isOn;
  led.style.backgroundColor = isOn ? 'red' : 'grey';
}

// 每1秒切换一次状态
setInterval(toggleLed, 1000);

高级 LED 效果

RGB LED 实现

const colors = ['red', 'green', 'blue'];
let currentColor = 0;

function changeColor() {
  led.style.backgroundColor = colors[currentColor];
  currentColor = (currentColor + 1) % colors.length;
}

setInterval(changeColor, 500);

使用 Canvas 实现 LED 矩阵

HTML 结构

js实现led

<canvas id="ledMatrix" width="300" height="100"></canvas>

JavaScript 代码

const canvas = document.getElementById('ledMatrix');
const ctx = canvas.getContext('2d');
const ledSize = 10;
const spacing = 5;
const rows = 5;
const cols = 20;

function drawLedMatrix() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  for (let row = 0; row < rows; row++) {
    for (let col = 0; col < cols; col++) {
      const x = col * (ledSize + spacing);
      const y = row * (ledSize + spacing);
      const isActive = Math.random() > 0.7;

      ctx.beginPath();
      ctx.arc(x + ledSize/2, y + ledSize/2, ledSize/2, 0, Math.PI * 2);
      ctx.fillStyle = isActive ? '#ff0000' : '#330000';
      ctx.fill();
    }
  }
}

setInterval(drawLedMatrix, 100);

使用 CSS 动画增强效果

CSS 添加发光效果

.led.active {
  box-shadow: 0 0 10px 5px rgba(255, 0, 0, 0.7);
  animation: pulse 0.5s infinite alternate;
}

@keyframes pulse {
  from { box-shadow: 0 0 5px 2px rgba(255, 0, 0, 0.7); }
  to { box-shadow: 0 0 20px 10px rgba(255, 0, 0, 0.7); }
}

JavaScript 控制类切换

function toggleLed() {
  led.classList.toggle('active');
}

这些方法可以根据具体需求进行组合和调整,实现从简单到复杂的各种 LED 效果。

标签: jsled
分享给朋友:

相关文章

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…