CSS变量对JS交互组件开发带来的升迁与变革

时间:2020-07-17 09:59 点击:128

原标题:CSS变量对JS交互组件开发带来的升迁与变革

一、CSS变量带来的质变

洼拂生物工程有限公司

CSS变量带来的升迁绝不光仅是撙节点CSS代码,以及降矮CSS开发和维护成本。

更主要的是,把组件中多多的交互开发从原本的JS迁移到了CSS代码中,让组件代码更简洁,同时让视觉外实际现更添变通了。

吾们议定几个案例来表明这一转折。

二、简化了JS对DOM竖立的介入 案例1:loading进度奏效

例如实现下图所示的变量奏效:

形式有一层背景层,然后内里有进度条,还有进度值。

在以前,会行使两层div元素,然后JS往转折内里有颜色条条的宽度,同时竖立进度值。

也就是,loading的进度奏效和进度值一切都是JS直接竖立的,JS同时对答多个HTML新闻。

现在,有了CSS变量,JS所做的做事就专门浅易,仅仅在容器元素上竖立loading进度值即可,其他什么都不必要做,至于形式外现,或者进度值如何表现,一切都是CSS的事情。

有关代码如下:

能够望到,吾们只必要一层div标签,DOM层级浅易了,然后,必要修改的HTML转折项仅仅是一个 --percent 自定义属性而已。

三、CSS变量成为了CSS API接口

以前点击挑示,点击切换等奏效都必要JS针对特定的元素进走形式竖立,现在有了CSS变量,吾们只必要一段专门浅易的通用的全局JS就能够了,然后JS就能够游玩本身答该游玩的东西,其他奏效,一切交给CSS处理。

这段JS如下:

// 竖立自定义属性值body.style.setProperty( '--pagex', event.pageX); body.style.setProperty( '--pagey', event.pageY);

html.style.setProperty( '--clientx', event.clientX); html.style.setProperty( '--clienty', event.clientY); html.style.setProperty( '--scrolly', window.pageYOffset);

target.style.setProperty( '--offsetx', event.offsetX); target.style.setProperty( '--offsety', event.offsetY); target.parentElement.style.setProperty( '--target-width', target.clientWidth); target.parentElement.style.setProperty( '--target-height', target.clientHeight); target.parentElement.style.setProperty( '--target-left', target.offsetLeft); target.parentElement.style.setProperty( '--target-top', target.offsetTop); });

能够望到,Java代码再也不负义务何与交互走为有关的逻辑,直接变成了工具人,一个单纯地传递点击坐标位置,以及点击元素偏移和尺寸新闻的工具人。

CSS得到了什么呢?

得到了一个重大的宝藏,一个随时能够拿来行使的宝藏。

吾想要点击按钮的时候有什么花哨的逆馈,或者点击页面空白也来个创意的交互挑示,十足不走题目,随用随取,无比方便,无比解放。

能够说,上面这段JS,或者相通的JS代码是异日web开发的标配。

吾们来望望上面的代码能够实现怎样的奏效。

案例2:按钮点击圈圈奏效

点击按钮的时候有个圈圈放大的奏效,圈圈放大的中央点就是点击的位置。

奏效如下GIF所示:

中央CSS代码如下:

:active 时候暗藏,同时竖立过渡时间为0。所以,点击开释的时候,就会有过渡奏效。

行家能够访问这个地址进走体验:https://xy-ui.codelabo.cn/docs/#/xy-button

案例3:点击页面展现文字奏效

又例如,新闻资讯点击本文页面肆意位置都会展现下图所示的挑示新闻。

就是下面上面那段全能工具人JS添下面这段CSS实现的:

案例4:两个按钮下划线滑来滑往奏效

以前,下图这栽点击选项卡按钮,然后下划线滑来滑往,尺寸还转折奏效,行使纯CSS实现很考验功力,几乎99.99%的开发都是借助JS往查询对答DOM元素,然后竖立宽高和位置实现的交互奏效。

现在,有了工具人JS,只必要一段CSS就能够搞定了,甚至文字的高亮切换都能够纯CSS搞定,就是这么微妙。

下面这边的奏效就是实现的实时奏效(若异国奏效,请访问原文):

点击肆意的选项卡元素,就能够望到下划线滑到对答位置,同时文字有高亮的奏效。

QQ浏览首点读书红袖读书飞读免费幼说

有关代码如下:

倘若是移动端访问,必要 mousedown 事件修改成 touchstart ,吾就懒得调整了。

四、web组件的许多API接口能够拜拜了

以前web组件有一个什么功能,就新添一个API接口,望上往很严害,实际上,添着添着,API越来越多,组件也越来越重,学习成本也越来越高,末了走向了物化胡同,变得笨重,迎来了死灭。

现在,能够转折思路了。

那些与交互外现亲昵有关的功能,原形上仅仅在组件容器元素上传递CSS自定义属性就能够了,无需负责详细的定位,显隐,或者形式转折,一切交给CSS。

由于设计外现的东西是表层的,变通的,个性的,答该在CSS层面进走驾驭才是相符理的,匹配的。

例如上面挑到的loading组件,不论是条状的照样饼状的都是云云的处理逻辑,只负责传递进度值,形式无需关心。

又例如滑条框(如下图Ant Design中的滑条的位置和挑示奏效)、popup挑示框等都能够议定一个CSS自定义属性完善,JS仅必要把CSS无法获取的数据传递到先人元素上,不必要负责UI形式。

原标题:狗子躺在窝里舔着碗里的水,这懒懒的表现,像极了头猪!

  5月份,社会消费品零售总额31973亿元,同比下降2.8%(扣除价格因素实际下降3.7%,以下除特殊说明外均为名义增长),降幅比上月收窄4.7个百分点。其中,除汽车以外的消费品零售额28597亿元,下降3.5%。

“今天能在敬老院看到越剧、莲花落这些表演,我觉得特别开心,这么热闹的日子真的难得。”对于住在越城区马山街道敬老院的孟水木老人来说,今年的小年夜跟往年不太一样,敬老院里热闹得很,舞台上精彩的戏剧节目让大家一饱眼福。

  定价无标准、内容良莠不齐、盗版侵权多发知识付费市场需破解监管难题

原标题:跨省游蓄势待发 济南各旅行社积极谋求转型升级


当前网址:http://www.xuezhishe.cn/31079522/2671489.html
tag:CSS,变量,对,交互,组件,开发,带来,的,升迁,与,

发表评论 (128人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称: 验证码:点击我更换图片
最新评论

Powered by 搁狡百货零售有限公司 @2014 RSS地图 html地图

Copyright 365站群 © 2013-2018 版权所有