HTML中直接创建一个“onoff”图形开关包括css+script

1. HTML中直接创建一个“onoff”图形开关

下面是一个完整的HTML文档示例
在HTML中直接创建一个“onoff”图形开关(通常指的是一个类似于物理开关的UI组件,可以切换开或关的状态),并不直接支持,因为HTML主要用于内容的结构化,而不是复杂的用户界面组件。然而,你可以通过结合HTML、CSS和JavaScript(可能还需要使用JavaScript库或框架)来实现这样的效果。
以下是一个简单的例子,展示如何使用HTML(用于结构)、CSS(用于样式)和JavaScript(用于交互)来创建一个基本的图形开关

在这个完整的HTML文档中,我已经将CSS样式直接放在了<head>部分的<style>标签内,以简化示例。在实际项目中,你可能会选择将CSS样式放在一个外部文件中,并通过<link>标签在<head>部分引入它。同样地,JavaScript代码也可以被放在一个外部文件中,并通过<script src="your-script.js"></script>标签在文档的底部或<head>部分(尽管推荐放在底部以加快页面加载速度)引入。
请注意,我在<head>部分还添加了`<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">`这两个标签,它们对于现代网页来说是非常重要的。第一个标签指定了文档使用的字符编码,而第二个标签则控制了视口(viewport)的行为,确保网页能够在不同设备上正确显示

2. 一个单独html

<!DOCTYPE html>  
<html lang="en">  
<head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Graphical On/Off Switch</title>  <style>  /* 这里粘贴上面提供的CSS代码 */  .onoffswitch {  position: relative; width: 90px;  -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;  }  .onoffswitch-checkbox {  display: none;  }  .onoffswitch-label {  display: block; overflow: hidden; cursor: pointer;  border: 2px solid #999999; border-radius: 20px;  }  .onoffswitch-inner {  display: block; width: 200%; margin-left: -100%;  transition: margin 0.3s ease-in 0s;  }  .onoffswitch-inner:before, .onoffswitch-inner:after {  display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px;  font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;  box-sizing: border-box;  }  .onoffswitch-inner:before {  content: "ON";  padding-left: 10px;  background-color: #34A7C1; color: #FFFFFF;  }  .onoffswitch-inner:after {  content: "OFF";  padding-right: 10px;  background-color: #EEEEEE; color: #999999;  text-align: right;  }  .onoffswitch-switch {  display: block; width: 18px; margin: 6px;  background: #FFFFFF;  position: absolute; top: 0; bottom: 0;  right: 56px;  border: 2px solid #999999; border-radius: 20px;  transition: all 0.3s ease-in 0s;   }  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {  margin-left: 0;  }  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {  right: 0px;   }/* ... (继续粘贴CSS代码) ... */  </style>  
</head>  
<body>  <div class="onoffswitch">  <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked>  <label class="onoffswitch-label" for="myonoffswitch">  <span class="onoffswitch-inner"></span>  <span class="onoffswitch-switch"></span>  </label>  
</div>  <script>  // 这里可以添加JavaScript代码  // 例如,监听开关的变化  document.querySelector('.onoffswitch-checkbox').addEventListener('change', function(e) {  if (this.checked) {  console.log('Switch is ON');  } else {  console.log('Switch is OFF');  }  });  
</script>  </body>  
</html>

3. HTML、css、script分开

//switch.html
<!DOCTYPE html>  
<html lang="en">  
<head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Graphical On/Off Switch</title>  <link rel="stylesheet" href="styles.css">   
</head>  
<body>  <div class="onoffswitch">  <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked>  <label class="onoffswitch-label" for="myonoffswitch">  <span class="onoffswitch-inner"></span>  <span class="onoffswitch-switch"></span>  </label>  
</div>  <script src="script.js"></script>  </body>  
</html>
//styles.css
.onoffswitch {  position: relative; width: 90px;  -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;  
}  .onoffswitch-checkbox {  display: none;  
}  .onoffswitch-label {  display: block; overflow: hidden; cursor: pointer;  border: 2px solid #999999; border-radius: 20px;  
}  .onoffswitch-inner {  display: block; width: 200%; margin-left: -100%;  transition: margin 0.3s ease-in 0s;  
}  .onoffswitch-inner:before, .onoffswitch-inner:after {  display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px;  font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;  box-sizing: border-box;  
}  .onoffswitch-inner:before {  content: "ON";  padding-left: 10px;  background-color: #34A7C1; color: #FFFFFF;  
}  .onoffswitch-inner:after {  content: "OFF";  padding-right: 10px;  background-color: #EEEEEE; color: #999999;  text-align: right;  
}  .onoffswitch-switch {  display: block; width: 18px; margin: 6px;  background: #FFFFFF;  position: absolute; top: 0; bottom: 0;  right: 56px;  border: 2px solid #999999; border-radius: 20px;  transition: all 0.3s ease-in 0s;   
}  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {  margin-left: 0;  
}  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {  right: 0px;   
}
//script.js

可以通过JavaScript来监听开关的变化,并执行一些操作(如发送AJAX请求、更改其他元素的样式等)

document.querySelector('.onoffswitch-checkbox').addEventListener('change', function(e) {  if (this.checked) {  console.log('Switch is ON');  } else {  console.log('Switch is OFF');  }  
});

4. 效果

在这里插入图片描述
在这里插入图片描述

5. 原理说明

下面我将分别解释这三个部分是如何工作的:

HTML
HTML部分定义了开关的结构。它包含一个隐藏的复选框(<input type=“checkbox” …>),这个复选框是实际控制开关状态的元素,但由于它默认是不可见的,所以我们通过CSS来美化它的显示方式。

<input type=“checkbox” …>:这是一个标准的HTML复选框元素,用于存储开关的状态(开或关)。

.onoffswitch:定义了开关的整体样式,如宽度和禁止用户选择文本。
.onoffswitch-checkbox:将复选框隐藏起来,因为我们不希望用户直接看到或与之交互。
.onoffswitch-label:定义了开关标签的样式,包括边框、圆角等。
.onoffswitch-inner 和 .onoffswitch-inner:before, .onoffswitch-inner:after:.onoffswitch-inner是包含“ON”和“OFF”文本的容器,而:before和:after伪元素分别用于显示这两个文本。通过调整margin-left属性,我们可以控制这两个文本(即开关的两端)的显示位置。
.onoffswitch-switch:定义了开关滑动部分的样式,包括大小、位置、背景色和边框等。当复选框被选中时,这个部分会移动到另一边,从而改变开关的显示状态。
过渡效果(transition):在.onoffswitch-inner和.onoffswitch-switch上使用了过渡效果,使得开关的切换动作更加平滑。
JavaScript
JavaScript部分用于增强开关的交互性。

document.querySelector(‘.onoffswitch-checkbox’).addEventListener(‘change’, function(e) { … }):这行代码为复选框添加了一个事件监听器,监听change事件(即复选框的状态发生变化时)。当事件发生时,会执行一个回调函数,该函数检查复选框的checked属性,并根据其值在控制台输出相应的信息。
工作原理总结
用户点击开关的标签部分。
由于标签与隐藏的复选框相关联,点击标签会触发复选框的点击事件。
复选框的状态(选中或未选中)发生变化,并触发change事件。
JavaScript事件监听器捕获到这个change事件,并执行回调函数。
回调函数检查复选框的checked属性,并根据其值输出相应的信息到控制台。
同时,由于CSS的样式和过渡效果,开关的视觉效果也会相应地发生变化,以反映复选框的新状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/54247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

研究生存指南:必备Zotero插件,让你的文献管理更轻松

在读研阶段&#xff0c;我经常面临大量文献阅读和项目研究的任务。忽略文献整理会导致后续使用时非常不便&#xff0c;查找困难且混乱。导师向我们推荐了 Zotero&#xff0c;经过亲身试用&#xff0c;我发现它非常好用&#xff01;zotero有非常多的插件&#xff0c;能够一个就满…

web学习——VUE

VUE&Element 今日目标&#xff1a; 能够使用VUE中常用指令和插值表达式能够使用VUE生命周期函数 mounted能够进行简单的 Element 页面修改能够完成查询所有功能能够完成添加功能 1&#xff0c;VUE 1.1 概述 接下来我们学习一款前端的框架&#xff0c;就是 VUE。 Vue 是…

kubernetes调度2

1、各种缩写的应用 [rootk8s-master test]# kubectl get rsNAME DESIRED CURRENT READY AGEtest001-64c7957b5c 2 2 2 8m59stest001-698b98bb8f 0 0 0 12m[rootk8s-master test]# kubectl get replicas…

provide,inject父传子

这个方法传递子参数&#xff0c;可以让所有的子组件获取到&#xff0c;不能子组件传递给父组件 父组件 说下大概思路&#xff0c;导入privode&#xff0c;然后使用privode方法&#xff0c;有点像redis&#xff0c;key value形式存值&#xff0c;子组件可以通过key来获取你要传…

C#事件的用法

前言 在C#中&#xff0c;事件&#xff08;Event&#xff09;可以实现当类内部发生某些特定的事情时&#xff0c;它可以通知其他类或对象。事件是基于委托&#xff08;Delegate&#xff09;的&#xff0c;委托是一种类型安全的函数指针&#xff0c;它定义了方法的类型&#xff…

昂科烧录器支持Senasic琻捷电子的蓝牙低功耗芯片SNP746

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中Senasic琻捷电子的蓝牙低功耗芯片SNP746已经被昂科的通用烧录平台AP8000所支持。 SNP746是一款蓝牙低功耗芯片&#xff0c;集成了压力传感器和加速度传感器的测量电路。它是为…

Python知识点:深入理解Python的模块与包管理

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 深入理解Python的模块与包管理 Python的模块和包是代码组织、复用和分发的基本…

git报错:无法读取远程分支 ‘origin‘ does not appear to be a git repository

问题分析 push上传的时候本地分支和远程分支断开连接 所以重新链接即可 排查问题 1. 查看是否有分支&#xff0c;检查分支是否正确 git branch -v 2. 查看连接是否断开&#xff0c;断开无内容展示 查看远程仓库详细信息&#xff0c;可看到仓库地址 git remote -v 解决…

FPGA随记——FPGA时序优化小经验

为什么要做时序优化&#xff1a; 1.一般是低端芯片或者软件做的比价差&#xff0c;就会导致时序不好过&#xff0c;需要我们代码设计上或者软件约束上进行时序优化。 2.或者设计中频点的提升&#xff0c;时序收敛会比较难&#xff0c;需要优化。 3.时钟方案的复杂&#xff0…

Linux 信号的产生

1. 概念 在Linux系统中&#xff0c;信号是一种进程间通信的机制&#xff0c;它允许操作系统或其他进程向特定进程发送异步通知。我们可以通过命令 kill -l来查看信号的种类&#xff1a; Linux系统中的信号可以分为两大类&#xff1a;传统信号和实时信号。从上图可以看出它们分…

09 Shell Scriptfor循环结构语句

Shell Scriptfor循环结构语句 一、Shell FOR循环语句概述 ​ 属于shell的符合语句 ​ 可以看出帮助信息给出了两种语法 [rootlocalhost ~]# help for for: for NAME [in WORDS ... ] ; do COMMANDS; doneExecute commands for each member in a list.The for loop executes…

htop(1) command

文章目录 1.简介2.格式3.选项4.交互式命令5.示例6.小结参考文献 1.简介 htop 是一种交互式、跨平台的基于 ncurses 的进程查看器。 类似于 top&#xff0c;但 htop 允许您垂直和水平滚动&#xff0c;并使用指向设备(鼠标)进行交互。您可以观察系统上运行的所有进程&#xff0…

24年蓝桥杯及攻防世界赛题-MISC-2

11 Railfence fliglifcpooaae_hgggrnee_o{cr} 随波逐流编码工具 分为5栏时,解密结果为:flag{railfence_cipher_gogogo} 12 Caesar rxms{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} mode1 #12: flag{you_have_learned_caesar_encryption} 随波逐流编码工具 13 base64 base64解…

iOS17找不到developer mode

iOS17找不到开发者模式 developer mode 下载过app之后、弹窗Developer Mode Required之后&#xff0c;这个菜单就出现了&#xff08;之前死活找不到&#xff09;。 背景&#xff1a;用蒲公英分发测试app&#xff0c;有个同事买了新机(iphone 15 pro max)&#xff0c;添加了白名…

ppt一键生成免费版软件有哪些?如何高效生成论文答辩?

答辩经验丰富的人都知道&#xff0c;制作论文答辩ppt是一项既繁琐又耗时的工作。 我们需要从数万字的论文中提炼关键点&#xff0c;梳理内容的逻辑关系&#xff0c;然后进行细致的排版和美化&#xff0c;最后还要进行反复的检查和试讲。整个过程不仅耗费时间&#xff0c;而且需…

MATLAB绘图:4.统计图表

MATLAB绘图之统计图表 一.散点图 适用情形&#xff1a;通过散点的疏密程度和变化趋势表示变量间的关系表示因变量随自变量变化的大致趋势&#xff0c;常用于显示和比较数值回归分析中&#xff0c;可用于描述数据点的分布 scatter(x,y) 在向量x和y指定的位置创建一个包含圆形…

硬件工程师笔试面试——变压器

目录 9、变压器 9.1 基础 变压器原理图 变压器实物图 9.1.1 概念 9.1.2 变压器组成结构 9.1.3 变压器原理 9.1.4 变压器的类型 9.1.5 应用领域 9.2 相关问题 9.2.1 变压器的工作原理是什么? 9.2.2 如何选择合适的变压器类型? 9.2.3 变压器在实际应用中,如何进行…

8.1差分边缘检测

基本概念 差分边缘检测是一种图像处理技术&#xff0c;用于检测图像中的边缘。边缘是指图像中灰度值发生显著变化的区域。差分边缘检测通常通过计算图像的梯度来实现&#xff0c;梯度反映了灰度值的变化率。在OpenCV中&#xff0c;可以使用不同的算子来检测不同方向的边缘&…

[docker]入门

本文章主要讲述的是&#xff0c;docker基本实现原理&#xff0c;docker概念的解释&#xff0c;docker的使用场景以及docker打包与部署的应用。 文章中docker所运行的系统&#xff1a;CentOS Linux release 7.9.2009 (Core) 目录 docker是什么&#xff0c;什么时候需要去使用 …

【Git原理与使用】版本管理与分支管理(1)

目录 一、基本操作 1、初识Git 2、Git安装[Linux-centos] 3、Git安装[ Linnx-ubuntu] 4、创建git本地仓库 5、配置Git 6、认识工作区、暂存区、版本库 7、添加文件 8、查看历史提交记录 9、查看.git文件目录结构 10、查看版本库对象的内容 11、小结&#xff08;在本地的.git仓库…