当前位置: 首页 > news >正文

Web前端之实现酷炫的仪表进度条、JavaScript动态设置Css属性值、标签元素属性选择器、hsl样式函数

MENU

  • 效果图
  • Html
  • JavaScript
  • Style
  • 解析

效果图




Html

<divclass="main"></div><inputtype="range"id="range"value=0><pid="pc">0%</p>

JavaScript

functioninit(){letmain=document.querySelector('.main');letrange=document.querySelector('#range');letpc=document.querySelector('#pc');for(let i=0;i<100;i++){letspan=document.createElement('span');span.style.transform=`rotate(${i /100*360}deg)`;main.appendChild(span);}range.addEventListener('input',()=>{range.style.backgroundSize=`${range.value}%100%`;pc.innerHTML=`${range.value}%`;chColor(range.value);});functionchColor(val){for(let i=0;i<main.children.length;i++){if(i<val){main.children[i].style.setProperty('--bg',`hsl(${i /100*360},100%,50%)`);main.children[i].style.setProperty('--sg',`hsl(${i /100*360},100%,50%)`);}else{main.children[i].style.setProperty('--bg','#000000');main.children[i].style.setProperty('--sg','transparent');}}}}init();

Style

*{margin:0;padding:0;box-sizing:border-box;}body{background-color:#333333;display:flex;width:100%;height:100vh;justify-content:center;align-items:center;}.main{width:30vw;height:30vw;position:absolute;display:flex;justify-content:start;align-items:center;}input[type='range']{--c:#1e90ff;width:30vw;height:1vw;position:absolute;transform:translateY(20vw);appearance:none;background:linear-gradient(var(--c),var(--c))no-repeat,#000000;background-size:0 100%;border-radius:0.5vw;cursor:pointer;}input[type='range']::-webkit-slider-thumb{width:2vw;height:2vw;appearance:none;background:var(--c);border-radius:50%;box-shadow:0 0 1vw #ffffff,0 0 2vw #ffffff;}#pc{color:#ffffff;font-size:8vw;font-family:Arial,Helvetica,sans-serif;text-shadow:0.2vw 0.2vw 0 gray,0 0 1vw #1e90ff,0 0 2vw #1e90ff,0 0 4vw #1e90ff;}.main span{--bg:#000000;--sg:transparent;position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:start;}.main span::after{content:'';width:0.1vw;height:2vw;position:absolute;background:var(--bg);box-shadow:0 0 0.5vwvar(--sg),0 0 1vwvar(--sg),0 0 2vwvar(--sg);transition:0.8s linear;}

解析

代码创建了一个简单的界面,其中有一个可拖动的滑块(range input),滑块的值会导致一系列旋转的条状元素的颜色和长度发生变化。


html
一个<div>元素类名为"main",用于容纳条状元素。
一个<input>元素类型为"range",具有id为"range",用于控制条状元素的变化。
一个<p>元素id为"pc",用于显示滑块的值。


style
一些基本的样式设置,如去除默认的内外边距,设置全局的盒模型为边框模型,背景颜色等。
设置主体的背景颜色为深灰色。
设置.main元素的样式,定义了它的大小和位置等。
设置input[type=‘range’]和其thumb(滑块拖动的圆球)的样式。
设置#pc元素的样式,定义了它的字体大小、颜色和阴影效果。
设置.main span元素的样式,定义了条状元素的样式,包括颜色、阴影等。


JavaScript
init()函数用于初始化页面,获取相关元素,并设置滑块的事件监听器。
在循环中,通过创建span元素的方式创建了一系列条状元素,并将它们添加到.main元素中。
滑块的输入事件监听器会根据滑块的值改变背景的大小、滑块下方文字的内容,并调用chColor()函数改变条状元素的颜色。
chColor()函数根据传入的值改变条状元素的背景颜色,使用HSL颜色空间,从黑色到彩虹色渐变。


总体来说,这段代码实现了一个简单的滑块控制条状元素颜色和长度变化的效果。

http://www.jsqmd.com/news/446801/

相关文章:

  • 优先队列(priority_queue)总结
  • Web前端之实现累计功能、原生与UniApp版微信小程序两种方式实现、计算、累加、getElementById、innerHTML、Number
  • 在 SAP Kyma 上使用 Redis 服务
  • Web前端之鼠标悬浮,鼠标移入和鼠标移出、getElementById、onmouseover、onmouseout、mouseenter、mouseleave、hover
  • 读懂 Cost-Based Optimization:SAP HANA SQL 优化器如何用成本模型选出更快的执行计划
  • 这才是未来的“openclaw”
  • git 命令总结
  • postpresql 表结构修改、添加字段、外键、主键自增逻辑设置
  • 从扫描到索引:SAP HANA 查询处理路径与优化技巧的落地实战
  • 把运行在 Docker 容器内的 Microsoft SQL 服务器部署到 SAP Kyma 中
  • Python—1、基础篇
  • 读懂 SAP HANA 的 Optimized Logical Plan 与 Optimized Physical Plan:把优化器的思路“看见”
  • 在 SAP BTP Kyma Runtime 上使用 Redis 读取和存储数据
  • [从0开始学Java|第十二天]学生管理系统升级 - 详解
  • 服务端之nestJS常用异常类及封装自定义响应模块
  • ROS 摄像头参数标定
  • OBLITERATUS:解锁大模型无限潜力
  • 会穿搭才是真的美,聪明女人必学的搭配技巧,优雅高级又有气质
  • 为macOS Finder提供直观的剪切粘贴体验 - 实践
  • C#委托学习思维导图
  • 一、HTML简介与开发环境
  • 技术架构解析:如何构建高并发、合规的本地生活多平台抽佣系统
  • 小程序商城平台哪家强?做商城小程序选哪个制作平台? - 码云数智
  • [kotlin] 从Java到Kotlin:掌握基础语法差异的跃迁指南 - 指南
  • 小程序商城哪个平台好,SaaS小程序商城平台深度对比 - 码云数智
  • 小程序开发一个多少钱啊,三种方式的费用构成与适用场景 - 码云数智
  • 如何做一个微信小程序商城 - 码云数智
  • 两个空,一个空性:AI元人文指向同一个家
  • 小程序快速开发平台有哪些,SaaS小程序制作平台深度对比 - 码云数智
  • 小程序第三方开发平台有哪些 - 码云数智