当前位置:首页 > JavaScript

js 实现switchbutton

2026-04-05 15:44:09JavaScript

实现 Switch Button 的方法

使用 HTML 和 CSS 创建基本结构

<label class="switch">
  <input type="checkbox">
  <span class="slider"></span>
</label>
.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 交互功能

document.querySelectorAll('.switch input').forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    const isChecked = this.checked;
    console.log('Switch state:', isChecked);
    // 可以在这里添加切换后的处理逻辑
  });
});

自定义样式选项

通过修改 CSS 可以自定义开关的外观:

  • 调整 .switchwidthheight 改变整体大小
  • 修改 .sliderbackground-color 改变关闭状态颜色
  • 修改 input:checked + .sliderbackground-color 改变开启状态颜色
  • 调整 .slider:before 的尺寸改变滑块大小

添加动画效果

在 CSS 中已经包含了过渡效果:

js 实现switchbutton

transition: .4s;

可以调整这个时间值来改变切换速度,或者使用 transition-timing-function 改变动画曲线。

js 实现switchbutton

响应式设计考虑

使用相对单位可以让开关适应不同屏幕尺寸:

.switch {
  width: 3.75rem;
  height: 2.125rem;
}

.slider:before {
  height: 1.625rem;
  width: 1.625rem;
}

无障碍访问增强

为开关添加 ARIA 属性和标签:

<label class="switch">
  <input type="checkbox" role="switch" aria-labelledby="switch-label">
  <span class="slider"></span>
</label>
<span id="switch-label">Dark Mode</span>

标签: jsswitchbutton
分享给朋友:

相关文章

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…