…">
当前位置:首页 > JavaScript

js 实现开关

2026-03-14 00:58:36JavaScript

使用 HTML 和 JavaScript 实现开关

HTML 部分创建一个简单的开关结构,使用 labelcheckbox 实现交互:

<label class="switch">
  <input type="checkbox" id="toggle">
  <span class="slider"></span>
</label>

CSS 样式设计

为开关添加基础样式,使其具有视觉反馈:

js 实现开关

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  transition: .4s;
  border-radius: 34px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  transition: .4s;
  border-radius: 50%;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:checked + .slider:before {
  transform: translateX(26px);
}

JavaScript 控制逻辑

添加事件监听器处理开关状态变化:

js 实现开关

document.getElementById('toggle').addEventListener('change', function() {
  if(this.checked) {
    console.log('开关已打开');
    // 打开状态执行的操作
  } else {
    console.log('开关已关闭');
    // 关闭状态执行的操作
  }
});

使用按钮元素实现开关

替代方案使用按钮元素实现开关效果:

<button id="powerBtn" class="power-button">OFF</button>
const powerBtn = document.getElementById('powerBtn');
let isOn = false;

powerBtn.addEventListener('click', () => {
  isOn = !isOn;
  powerBtn.textContent = isOn ? 'ON' : 'OFF';
  powerBtn.style.backgroundColor = isOn ? '#4CAF50' : '#f44336';

  // 根据状态执行不同操作
  if(isOn) {
    // 开启功能
  } else {
    // 关闭功能
  }
});

使用第三方库实现

快速集成现有开关组件库:

<!-- 引入库 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-switch@3.3.4/dist/css/bootstrap3/bootstrap-switch.min.css">
<script src="https://cdn.jsdelivr.net/npm/bootstrap-switch@3.3.4/dist/js/bootstrap-switch.min.js"></script>

<!-- 使用 -->
<input type="checkbox" name="my-switch" data-size="large">
$("[name='my-switch']").bootstrapSwitch();

标签: js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…