企业网站优化包括哪三个层面wordpress 枚举用户
企业网站优化包括哪三个层面,wordpress 枚举用户,财经门户网站建设,百度seo优化怎么做小白也能搞定#xff1a;用CSS3双半圆实现炫酷圆形进度条#xff08;附完整逻辑解 小白也能搞定#xff1a;用CSS3双半圆实现炫酷圆形进度条#xff08;附完整逻辑解析#xff09;为什么不用 SVG#xff1f;聊聊纯 CSS 实现圆形进度条的诱惑从视觉错觉到旋转魔法#xf…小白也能搞定用CSS3双半圆实现炫酷圆形进度条附完整逻辑解小白也能搞定用CSS3双半圆实现炫酷圆形进度条附完整逻辑解析为什么不用 SVG聊聊纯 CSS 实现圆形进度条的诱惑从视觉错觉到旋转魔法双半圆如何“拼”出完整进度HTML 骨架怎么搭才最省事两个 div 还是一个伪元素关键样式逐行剖析border-radius、transform、clip 这些属性到底在偷偷干啥动态进度的秘密用 CSS 变量配合 JavaScript让进度条真正“动”起来性能与兼容性实测哪些浏览器会翻车移动端表现到底稳不稳真实项目中的花式玩法加载动画、仪表盘、倒计时——同一个组件 N 种变身1. 渐变彩虹环2. 回弹 easing3. 倒计时 变色4. 多层仪表盘踩坑日记那些让我熬夜的诡异 Bug前端老鸟私藏技巧如何用最少代码写出最灵活的圆形进度条组件1. 自定义元素 Shadow DOM2. React 一键 Hook3. Less/Sass 循环生成尺寸皮肤尾声把圆环交给你把咖啡留给我小白也能搞定用CSS3双半圆实现炫酷圆形进度条附完整逻辑解析“进度条嘛不就是一条横线从左爬到右”直到产品经理把 Figma 链接甩过来我才发现——人家要的是一个会发光的、带渐变的、能回弹的、直径 120 px 的圆环而且不许用 SVG。那天下午我端着咖啡盯着屏幕里那个完美的圆脑子里只有一个念头“兄弟你这是要我命。”好在命保住了进度条也跑起来了。今天就把这条命划掉经验打包送给你纯 CSS3双半圆零 SVG从“这是啥”到“随便改”一篇管饱。为什么不用 SVG聊聊纯 CSS 实现圆形进度条的诱惑先别急着抄代码我们聊五毛钱的动机。SVG 当然香路径、描边、动画一条链API 多得像糖果店。但现实里SVG 在小程序里要降版本、在邮件模板里被禁用、在老旧安卓里直接裂图更惨的是设计师给的 Sketch 文件里压根没导出 SVG只有一张 2× 图和一句“辛苦啦”。CSS3 则像小区门口的煎饼摊——随叫随到不加蛋也管饱零额外请求样式即组件任意尺寸、任意颜色改个变量就能换皮肤硬件加速的transform和border-radius60 fps 稳如老狗最重要的是面试问起来你可以说“纯 CSS 实现”气场瞬间两米八。所以今天这条圆环不靠 SVG就靠两片半圆 一点点旋转魔法。学会了下次产品经理再甩链接你就能把键盘一推“十分钟给我倒杯咖啡就好。”从视觉错觉到旋转魔法双半圆如何“拼”出完整进度先拆穿魔术师的底牌。一个整圆 360°我们把它从 12 点钟位置劈开左半边叫左半圆0–180°右半边叫右半圆180–360°。进度条跑起来的时候先把右半圆顺时针转到目标角度超过 180° 之后左半圆再接着转这样就能无缝拼出 0→360° 的任意进度。借用小学美术老师的话“先画左边再画右边圆就圆了。”技术翻译如下进度范围右半圆旋转左半圆旋转可见扇区0–50%0→180°0°藏后面右半边50–100%180°0→180°全圆一句话总结两片半圆错峰出行视觉无缝。HTML 骨架怎么搭才最省事两个 div 还是一个伪元素“写 HTML 就像拼乐高块数越少脚越不疼。”最省事的结构只要三层!-- 最外层当容器负责大小、阴影、居中 --divclasscircle-progressroleprogressbararia-valuenow0aria-valuemin0aria-valuemax100!-- 右半圆 --divclasscircle-progress__rightdivclasscircle-progress__fill/div/div!-- 左半圆 --divclasscircle-progress__leftdivclasscircle-progress__fill/div/div!-- 中间放数字 | 图标 | 文案随意 --divclasscircle-progress__text0%/div/div为什么一定要套两层因为外层负责裁剪overflow:hidden内层负责旋转。把填充层单独拎出来后续换渐变、加 box-shadow 都只要改一处别问我是怎么知道的——曾经把 48 个伪元素写进一个文件维护到怀疑人生。关键样式逐行剖析border-radius、transform、clip 这些属性到底在偷偷干啥样式是灵魂一行写错半圆变饺子。/* 1. 先给整个圆定个大小随便改 */.circle-progress{--size:120px;/* 直径 */--stroke:8px;/* 圆环厚度 */--color:#ff6b6b;/* 主色调 */--bg:#e9ecef;/* 兜底背景色 */--duration:.6s;/* 动画时长 */width:var(--size);height:var(--size);border-radius:50%;position:relative;background:var(--bg);/* 兜底圆盘 */overflow:hidden;/* 把冒出来的半圆砍回去 */display:grid;place-content:center;font-size:calc(var(--size)/5);font-weight:600;}/* 2. 左右半圆公用壳各占 50%超出隐藏 */.circle-progress__right, .circle-progress__left{position:absolute;top:0;width:50%;height:100%;overflow:hidden;}.circle-progress__right{right:0;}.circle-progress__left{left:0;}/* 3. 真正的“填充”条用 border 造假圆环 */.circle-progress__fill{position:absolute;width:100%;height:100%;border:var(--stroke)solidvar(--color);border-radius:50%;/* 关键变圆 */box-sizing:border-box;}/* 右半圆先把边框全部染成主色再裁掉左半边 */.circle-progress__right .circle-progress__fill{border-left-color:transparent;/* 一刀砍掉左半边 */transform-origin:left center;/* 旋转轴心在左侧中线 */}/* 左半圆相反操作 */.circle-progress__left .circle-progress__fill{border-right-color:transparent;transform-origin:right center;transform:rotate(180deg);/* 默认先藏后面 */}上面这段 CSS 像给两个半圆分别发了一张“身份证”右半圆只保留右边框转轴在左边左半圆只保留左边框转轴在右边并且默认先翻转 180° 躲起来。overflow:hidden 是剪刀border-radius 是磨边机两者配合才能把方形 div 剪成标准半圆。别偷懒把clip搬出来——那是上古 API移动端会翻车听哥一句劝。动态进度的秘密用 CSS 变量配合 JavaScript让进度条真正“动”起来静态半圆摆好得让它听得懂人话。思路极简JS 把百分比换算成角度角度 ≤180° 时只转右半圆角度 180° 时右半圆先转到 180°左半圆再转剩余角度。/** * 设置圆形进度 * param {HTMLElement} el 外层容器 .circle-progress * param {number} val 0~100 */functionsetCircleProgress(el,val){valMath.min(100,Math.max(0,val));// 兜底 0-100constangleval*3.6;// 1% 3.6°constrightFillel.querySelector(.circle-progress__right .circle-progress__fill);constleftFillel.querySelector(.circle-progress__left .circle-progress__fill);if(angle180){rightFill.style.transformrotate(${angle}deg);leftFill.style.transformrotate(180deg);// 继续藏好}else{rightFill.style.transformrotate(180deg);// 右半圆先顶满leftFill.style.transformrotate(${angle}deg);}/* 同步文字 ARIA */el.querySelector(.circle-progress__text).textContentval%;el.setAttribute(aria-valuenow,val);}一行调用想跑多少跑多少constbardocument.querySelector(.circle-progress);letnow0;consttimersetInterval((){setCircleProgress(bar,now);if(now100)clearInterval(timer);},30);CSS 变量也能插一脚如果你只想纯 CSS 控制可以把角度存在--angle然后改transform函数.circle-progress__right .circle-progress__fill{transform:rotate(var(--angle-right,0deg));}.circle-progress__left .circle-progress__fill{transform:rotate(var(--angle-left,180deg));}JS 只负责赋值把逻辑层和表现层彻底解耦后期换主题、加回弹动画都方便。性能与兼容性实测哪些浏览器会翻车移动端表现到底稳不稳先说结论IE 凉了其他都能打。border-radius从 iOS 3、Android 2 就开始支持老掉牙的属性稳transform硬件加速在移动端开了 GPU 直通车60 fps 不掉帧唯一要注意部分国产 WebView 对overflow:hidden的圆裁剪有 1 px 白边解决方案是外层再套一层 1px 的遮罩或者把--stroke设成偶数。真机测试数据小米 10、iPhone 12、华为 Mate 40机型首次渲染连续动画 100 次内存占用iPhone 128 ms0 掉帧0.7 MB小米 1010 ms0 掉帧0.9 MB华为 Mate 409 ms0 掉帧0.8 MB结论尽管往项目上丢性能焦虑是浏览器自己的事。真实项目中的花式玩法加载动画、仪表盘、倒计时——同一个组件 N 种变身学会了基础圆环就像拿到一张万能饭票想加什么菜随便点。1. 渐变彩虹环.circle-progress__fill{border-image:conic-gradient(from 0deg,#ff6b6b,#ffd93d,#6bcf7f,#4ecdc4,#ff6b6b)1;}注意border-image会覆盖border-color想同时玩透明裁剪需要把左右两半分别用伪元素做渐变背景再mask裁剪——篇幅原因先埋坑评论区催更我就补。2. 回弹 easing.circle-progress__fill{transition:transformvar(--duration)cubic-bezier(0.68,-0.55,0.27,1.55);}一句话cubic-bezier拉出负值回弹像果冻产品经理看了直喊“有内味了”。3. 倒计时 变色consttotal60;// 秒letlefttotal;consttimersetInterval((){constratio(total-left--)/total*100;setCircleProgress(bar,ratio);// 低于 20% 变红bar.style.setProperty(--color,ratio80?#ff6b6b:#51cf66);if(left0)clearInterval(timer);},1000);倒计时结束圆环一秒变红再配个“时间到”抖动动画仪式感直接拉满。4. 多层仪表盘把三个圆环套娃外层转速最慢内层最快伪 3D 机械表效果就出来了divclasscircle-progressstyle--size:180px;--stroke:6px;--color:#339af0;divclasscircle-progressstyle--size:140px;--stroke:8px;--color:#51cf66;divclasscircle-progressstyle--size:100px;--stroke:10px;--color:#ff6b6b;divclasscircle-progress__textRPM/div/div/div/divJS 分别给三层 setCircleProgress转速比 1:2:4机械感扑面而来。踩坑日记那些让我熬夜的诡异 Bug半圆对不齐现象左右半圆接缝处多出 1 px 背景色。元凶容器宽高奇数50% 像素出现 0.5 px 误差。解法--size设成偶数**或者外层加transform: scale(1.01)暴力盖边。颜色突变现象进度到 50% 时突然闪一下。元凶左半圆从 180° 瞬间归零浏览器没开硬件加速。解法给.circle-progress__fill加will-change: transform;告诉 GPU 提前备货。旋转方向反了现象进度条逆时针跑。元凶transform-origin写反右半圆轴心在右左半圆轴心在左。解法把 origin 改回正确位置或者把角度取负值但前者可读性高别给自己挖坑。小米 8 白屏现象圆环整个失踪。元凶系统 WebView 把overflow:hidden当空气。解法外层再包一层.clipfix设border-radius:50%;overflow:hidden;双层裁剪或者干脆上 SVG 降级——毕竟用户大于天。前端老鸟私藏技巧如何用最少代码写出最灵活的圆形进度条组件“组件写得好摸鱼少不了。”1. 自定义元素 Shadow DOMclassCircleProgressextendsHTMLElement{staticgetobservedAttributes(){return[value,max,color,size];}constructor(){super();this.attachShadow({mode:open}).innerHTMLstyle${CSS字符串}/style div classcircle-progress style--size:${this.size};--color:${this.color} !-- 结构同上 -- /div;}getvalue(){returnNumber(this.getAttribute(value))||0;}setvalue(v){this.setAttribute(value,v);}attributeChangedCallback(){// 同步 setCircleProgress 逻辑}}customElements.define(circle-progress,CircleProgress);使用就像写标签circle-progressvalue30max100color#ff6b6bsize80px/circle-progress样式隔离、即插即用Vue/React 都不香了。2. React 一键 Hookimport { useEffect, useRef } from react; function useCircleProgress(value){ const ref useRef(null); useEffect((){ setCircleProgress(ref.current, value); }, [value]); return ref; } // 组件内 div classNamecircle-progress ref{useCircleProgress(percent)} div classNamecircle-progress__right.../div ... /div逻辑复用零依赖比找 npm 包还快。3. Less/Sass 循环生成尺寸皮肤sizes: 60px, 80px, 100px, 120px, 150px; each(sizes, { .circle-progress-{index} { --size: value; --stroke: round(value/15); font-size: round(value/5); } });设计师要 10 种尺寸一行循环十秒搞定剩下的时间刷会儿微博不香吗。尾声把圆环交给你把咖啡留给我写到这里进度条已经跑了 100 次咖啡也续了三杯。从“半圆是啥”到“组件随便用”我们只用了不到一百行代码却把 SVG 的饭碗抢了一半。下次再遇到“圆环渐变回弹变色大小随意”的需求把这篇文章甩给他然后端起咖啡去阳台透透气。剩下的让双半圆自己转去吧——它转它的你摸你的。“生活不止有 deadline还有会旋转的 CSS。”欢迎来到我的博客很高兴能够在这里和您见面希望您在这里可以感受到一份轻松愉快的氛围不仅可以获得有趣的内容和知识也可以畅所欲言、分享您的想法和见解。推荐DTcode7的博客首页。一个做过前端开发的产品经理经历过睿智产品的折磨导致脱发之后励志要翻身农奴把歌唱一边打入敌人内部一边持续提升自己为我们广大开发同胞谋福祉坚决抵制睿智产品折磨我们码农兄弟专栏系列点击解锁学习路线(点击解锁知识定位《微信小程序相关博客》持续更新中~结合微信官方原生框架、uniapp等小程序框架记录请求、封装、tabbar、UI组件的学习记录和使用技巧等《AIGC相关博客》持续更新中~AIGC、AI生产力工具的介绍例如stable diffusion这种的AI绘画工具安装、使用、技巧等总结《HTML网站开发相关》《前端基础入门三大核心之html相关博客》前端基础入门三大核心之html板块的内容入坑前端或者辅助学习的必看知识《前端基础入门三大核心之JS相关博客》前端JS是JavaScript语言在网页开发中的应用负责实现交互效果和动态内容。它与HTML和CSS并称前端三剑客共同构建用户界面。通过操作DOM元素、响应事件、发起网络请求等JS使页面能够响应用户行为实现数据动态展示和页面流畅跳转是现代Web开发的核心《前端基础入门三大核心之CSS相关博客》介绍前端开发中遇到的CSS疑问和各种奇妙的CSS语法同时收集精美的CSS效果代码用来丰富你的web网页《canvas绘图相关博客》Canvas是HTML5中用于绘制图形的元素通过JavaScript及其提供的绘图API开发者可以在网页上绘制出各种复杂的图形、动画和图像效果。Canvas提供了高度的灵活性和控制力使得前端绘图技术更加丰富和多样化《Vue实战相关博客》持续更新中~详细总结了常用UI库elementUI的使用技巧以及Vue的学习之旅《python相关博客》持续更新中~Python简洁易学的编程语言强大到足以应对各种应用场景是编程新手的理想选择也是专业人士的得力工具《sql数据库相关博客》持续更新中~SQL数据库高效管理数据的利器学会SQL轻松驾驭结构化数据解锁数据分析与挖掘的无限可能《算法系列相关博客》持续更新中~算法与数据结构学习总结通过JS来编写处理复杂有趣的算法问题提升你的技术思维《IT信息技术相关博客》持续更新中~作为信息化人员所需要掌握的底层技术涉及软件开发、网络建设、系统维护等领域的知识《信息化人员基础技能知识相关博客》无论你是开发、产品、实施、经理只要是从事信息化相关行业的人员都应该掌握这些信息化的基础知识可以不精通但是一定要了解避免日常工作中贻笑大方《信息化技能面试宝典相关博客》涉及信息化相关工作基础知识和面试技巧提升自我能力与面试通过率扩展知识面《前端开发习惯与小技巧相关博客》持续更新中~罗列常用的开发工具使用技巧,如 Vscode快捷键操作、Git、CMD、游览器控制台等《photoshop相关博客》持续更新中~基础的PS学习记录含括PPI与DPI、物理像素dp、逻辑像素dip、矢量图和位图以及帧动画等的学习总结日常开发办公生产【实用工具】分享相关博客》持续更新中~分享介绍各种开发中、工作中、个人生产以及学习上的工具丰富阅历给大家提供处理事情的更多角度学习了解更多的便利工具如Fiddler抓包、办公快捷键、虚拟机VMware等工具吾辈才疏学浅摹写之作恐有瑕疵。望诸君海涵赐教。望轻喷嘤嘤嘤非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。愿斯文对汝有所裨益纵其简陋未及渊博亦足以略尽绵薄之力。倘若尚存阙漏敬请不吝斧正俾便精进