幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

有趣的CSS数学函数

  前言
  之前一直在玩three。js,接触了很多数学函数,用它们创造过很多特效。于是我思考:能否在CSS中也用上这些数学函数,但发现CSS目前还没有,据说以后的新规范会纳入,估计也要等很久。
  然而,我们可以通过一些小技巧,来创作出一些属于自己的CSS数学函数,从而实现一些有趣的动画效果。
  让我们开始吧!CSS数学函数
  注意:以下的函数用原生CSS也都能实现,这里用SCSS函数只是为了方便封装,封装起来的话更方便调用绝对值
  绝对值就是正的还是正的,负的变为正的
  可以创造2个数,其中一个数是另一个数的相反数,比较它们的最大值,即可获得这个数的绝对值functionabs(v){returnmax({v},calc(1{v}));}中位数
  原数减1并乘以一半即可functionmiddle(v){returncalc(0。5({v}1));}数轴上两点距离
  数轴上两点距离就是两点所表示数字之差的绝对值,有了上面的绝对值公式就可以直接写出来functiondist1d(v1,v2){vdelta:calc({v1}{v2});return{abs(vdelta)};}三角函数
  其实这个也不会实现不过之前看到过一篇文章〔1〕写到了如何在CSS中实现三角函数,在此表示感谢functionfact(number){value:1;ifnumber0{forifrom1throughnumber{value:valuei;}}returnvalue;}functionpow(number,exp){value:1;ifexp0{forifrom1throughexp{value:valuenumber;}}elseifexp0{forifrom1throughexp{value:valuenumber;}}returnvalue;}functionrad(angle){unit:unit(angle);unitless:angle(angle01);ifunitdeg{unitless:unitless180pi();}returnunitless;}functionpi(){return3。14159265359;}functionsin(angle){sin:0;angle:rad(angle);Iterateabunchoftimes。forifrom0through20{sin:sinpow(1,i)pow(angle,(2i1))fact(2i1);}returnsin;}functioncos(angle){cos:0;angle:rad(angle);Iterateabunchoftimes。forifrom0through20{cos:cospow(1,i)pow(angle,2i)fact(2i);}returncos;}functiontan(angle){returnsin(angle)cos(angle);}例子
  以下的几个动画特效演示了上面数学函数的作用一维交错动画初始状态
  创建一排元素,用内部阴影填充,准备好我们的数学函数。。。(此处省略14个listitem)body{display:flex;justifycontent:center;alignitems:center;minheight:100vh;margin:0;background:222;}:root{bluecolor1:6ee1f5;}(这里复制粘贴上文所有的数学公式)。list{n:16;display:flex;flexwrap:wrap;justifycontent:spaceevenly;item{p:2vw;gap:1vw;bg:var(bluecolor1);forifrom1through16{:nthchild({i}){i:{i};}}padding:var(p);margin:var(gap);boxshadow:inset000var(p)var(bg);}}
  应用动画
  这里用了2个动画:grow负责将元素缩放出来;melt负责融化元素(即消除阴影的扩散半径)。。。(此处省略14个listitem)。list{。growmelt{。listitem{t:2s;animationname:grow,melt;animationduration:var(t);animationiterationcount:infinite;}}}keyframesgrow{0{transform:scale(0);}50,100{transform:scale(1);}}keyframesmelt{0,50{boxshadow:inset000var(p)var(bg);}100{boxshadow:inset0000var(bg);}}
  交错动画计算出元素下标的中位数计算每个元素id到这个中位数的距离根据距离算出比例根据比例算出delay。。。(此处省略14个listitem)。list{。middlestagger{。listitem{m:{middle(var(n))};中位数,这里是7。5imdist:{dist1d(var(i),var(m))};计算每个id到中位数之间的距离ratio:calc(var(imdist)var(m));根据距离算出比例delay:calc(var(ratio)var(t));根据比例算出delayndelay:calc((var(ratio)2)var(t));负delay表示动画提前开始animationdelay:var(ndelay);}}}
  地址:SymmetricLineAnimation〔2〕二维交错动画初始状态
  如何将一维的升成二维?应用网格系统即可。。。(此处省略62个griditem)。grid{row:8;col:8;row:{row};col:{col};gap:0。25vw;display:grid;gap:var(gap);gridtemplaterows:repeat(var(row),1fr);gridtemplatecolumns:repeat(var(col),1fr);item{p:2vw;bg:var(bluecolor1);foryfrom1throughrow{forxfrom1throughcol{k:col(y1)x;:nthchild({k}){x:{x};y:{y};}}}padding:var(p);boxshadow:inset000var(p)var(bg);}}
  应用动画
  跟上面的动画一模一样。。。(此处省略62个griditem)。grid{。growmelt{。griditem{t:2s;animationname:grow,melt;animationduration:var(t);animationiterationcount:infinite;}}}
  交错动画计算出网格行列的中位数计算网格xy坐标到中位数的距离并求和根据距离算出比例根据比例算出delay。。。(此处省略62个griditem)。grid{。middlestagger{。griditem{m:{middle(var(col))};中位数,这里是7。5xmdist:{dist1d(var(x),var(m))};计算x坐标到中位数之间的距离ymdist:{dist1d(var(y),var(m))};计算y坐标到中位数之间的距离distsum:calc(var(xmdist)var(ymdist));距离之和ratio:calc(var(distsum)var(m));根据距离和计算比例delay:calc(var(ratio)var(t)0。5);根据比例算出delayndelay:calc((var(ratio)2)var(t)0。5);负delay表示动画提前开始animationdelay:var(ndelay);}}}
  地址:SymmetricGridAnimation〔3〕另一种动画
  可以换一种动画shuffle(穿梭),会产生另一种奇特的效果。。。(此处省略254个griditem)。grid{row:16;col:16;row:{row};col:{col};gap:0。25vw;item{p:1vw;transformorigin:bottom;transform:scaleY(0。1);}。shuffle{。griditem{t:2s;animation:shufflevar(t)infiniteeaseinoutalternate;}}}keyframesshuffle{0{transform:scaleY(0。1);}50{transform:scaleY(1);transformorigin:bottom;}50。01{transformorigin:top;}100{transformorigin:top;transform:scaleY(0。1);}}
  地址:ShuffleGridAnimation〔4〕余弦波动动画初始状态
  创建7个不同颜色的(这里直接选了彩虹色)列表,每个列表有40个子元素,每个子元素是一个小圆点
  让这7个列表排列在一条线上,且z轴上距离错开,设置好基本的delay。。。(此处省略39个listitem)。。。(此处省略6个list)。lists{listcount:7;colors:red,orange,yellow,green,cyan,blue,purple;position:relative;width:34vw;height:2vw;transformstyle:preserve3d;perspective:800px;。list{position:absolute;top:0;left:0;display:flex;transform:translateZ(var(z));forifrom1throughlistcount{:nthchild({i}){bg:{nth(colors,i)};z:{i1vw};basicdelayratio:{ilistcount};}}item{w:0。6vw;gap:0。15vw;width:var(w);height:var(w);margin:var(gap);background:var(bg);borderradius:50;}}}
  余弦排列
  运用上文的三角函数公式,让这些小圆点以余弦的一部分形状进行排列。lists{。list{item{itemcount:40;offset:pi()0。5;wavelength:21vw;forifrom1throughitemcount{:nthchild({i}){i:{i};ratio:(i1)(itemcount1);angleunit:pi()ratio;wave:cos(angleunitoffset);singlewavelength:calc({wave}var(wavelength));nsinglewavelength:calc(var(singlewavelength)1);}}transform:translateY(var(nsinglewavelength));}}}
  波动动画
  对每个小圆点应用上下平移动画,平移的距离就是余弦的波动距离。lists{。list{item{t:2s;animation:wavevar(t)infiniteeaseinoutalternate;}}}keyframeswave{from{transform:translateY(var(nsinglewavelength));}to{transform:translateY(var(singlewavelength));}}
  交错动画
  跟上面一个套路,计算从中间开始的delay,再应用到动画上即可。lists{。list{item{n:{itemcount1};m:{middle(var(n))};imdist:{dist1d(var(i),var(m))};ratio:calc(var(imdist)var(m));square:calc(var(ratio)var(ratio));delay:calc(calc(var(square)var(basicdelayratio)1)var(t));ndelay:calc(var(delay)1);animationdelay:var(ndelay);}}}
  CSS数学函数能实现的特效远不止于此,希望通过本文能激起大家创作特效的灵感参考资料
  〔1〕在CSS中使用三角函数绘制曲线图形及展示动画:https:github。comchokcocoiCSSissues72
  〔2〕SymmetricLineAnimation:https:codepen。ioalphardexpenvYmqvpe
  〔3〕SymmetricGridAnimation:https:codepen。ioalphardexpenzYwgdZO
  〔4〕ShuffleGridAnimation:https:codepen。ioalphardexpenYzVmYaV
  〔5〕RainbowSine:https:codepen。ioalphardexpenGREKJbL

超级泡泡复出参赛,APL冬季赛AB组开战,TianbaCTGAPL冬季职业赛AB组的比赛将在晚上五点正式开始,这是2021PUBG世界赛后的第一个大型比赛,也是今年的最后一个比赛,全部打完之后刚好跨年,今日的参赛队伍如下图:Tianba……肌底液和精华液分不清楚?梵蜜琳让你护肤少走弯路每天护肤涂涂抹抹好多层,但是不是感觉用完之后效果并没有那么明显?如果没有效果,那这些大几千的护肤品岂不是浪费了?的确,昂贵的护肤品可不能浪费。所以需要肌底液这种类型的产品……细纹早发现不要慌,3个方法帮你减少,皮肤光滑,气色红润面对细纹,很多女性朋友都是一筹莫展的样子,毕竟自己一直都在使用着一些护肤品,其实各种皱纹的出现,并不是因为护肤品用得少,或者是用的不好,更多是和自己生活习惯息息相关,像一些不好……为什么陈梦在东京奥运会之后就难以夺冠了?是实力不够吗?我认为并不是陈梦的实力不够,她个人的能力绝对是没有问题的,至于她为什么在东京奥运会之后就没再夺冠,我认为有以下几个原因:第一个原因是由于心理压力的影响,自从陈梦在奥运会夺得冠军……冬日祭玖辛奈24号上架,周年庆活动开启,确认会有免费限定忍者火影忍者手游的萌黄速报还是一如既往地简洁,虽然提到了冬日祭玖辛奈是在12月24日上线,但并没有提到这个忍者的获取方式。即便是之前的圣诞忍者都是按照充50加1980金币购买的方式……国际足联保送亚洲三强?日本2毫米悬案,韩国争议点球,澳洲最黑北京时间12月8日,本届世界杯一直被称为是科技含量最高的一届世界杯,卡塔尔方面花了超过2000亿美元办世界杯,各种各样的使用var和3D回放越位技术,把足球变得有一些机械化、数……省体育局1个单位2名同志被授予全国五一劳动奖近日,全国总工会召开庆祝五一国际劳动节暨全国五一劳动奖和全国工人先锋号表彰大会,黑龙江省冰上训练中心荣获全国五一劳动奖状,黑龙江省球类运动管理中心教练员王飞、黑龙江省冰上训练中……蚝油生菜很多人都做错了,难怪不够清脆,厨师长分享秘制做法今天和大家分享一道蚝油生菜的家常做法,清脆爽口,清淡不油腻,有喜欢的赶紧学一下。食材:生菜辅料:大蒜、红椒调料:蚝油、生抽、食盐【蚝油生菜】清脆可口……48岁李冰冰出席活动,表情僵硬意外撞脸吕丽萍,网友返厂重修了引子:李冰冰的颜值,在女演员中算得上漂亮,范冰冰和李冰冰,两个冰冰在娱乐圈中的地位也是很高的。两人不仅是演员,还是老板,有演技又有头脑。如今已经48岁的李冰冰,出演的作品已经很……为什么有人一吃火锅就拉肚子?今天是大雪,之后会越来越冷,大冷天吃着火锅唱着歌是大家的小确幸,不过对有的人来讲,吃火锅一时爽,吃完就腹泻却过分酸爽。大家吃得都是火锅,为什么部分人对这等美食不耐受呢?要……杨千嬅全家移居内地,9岁儿子读贵族学校,学费被曝高达28万一在如今的社会,对于子女的教育可以说是许多人都比较关心的话题。大部分人都会思考给孩子上一个什么样的学校,让孩子赢在起跑线上。在娱乐圈中明星们对于孩子的教育同样是十分重视的,因为作……快删!11款APP盗取信用卡,小编手机里就有美国云信息安全公司ThreatLabz发表最新报告称,GooglePlayStore上出现11款应用程序(App)被植入最新的Joker间谍软件。用家一旦中招,会在不知情的情况……
美的集团副总裁伏拥军美的新能源车部件战略将从高举高打转向全线每经记者:陈鹏丽每经编辑:董兴生1月6日,随着美的工业技术旗下威灵汽车部件安庆新能源汽车零部件战略新基地(以下简称威灵安庆基地)宣布一期正式投产,美的新能源业务再进一城。……坚定信仰,走好新时代的长征路今年是红军长征胜利85周年。85年前,我们党领导红军,以非凡的智慧和大无畏的英雄气概,战胜千难万险,付出巨大牺牲,胜利完成震撼世界、彪炳史册的长征。以史为鉴,可以知兴替。回望这……杨紫角色适配度2004年至今,细数杨紫出演过的作品,作为童星她,一直在突破自己,演技也一直在进步,她以一部部优秀的作品打破别人给她固定好的人设。无论是什么类型的角色,杨紫都可以演绎并诠释得很……暗示自己已经恋爱的句子暗暗表达自己有对象的文案1。那就留在我身边,我买雪糕时给你带包烟。2。响应国家号召,降低单身人口比例,为我国现代化主义建设献出微薄之力。3。我喜欢看山,看海,看鲜花,看黄昏,看日出日落,看……众神之所万神殿万神殿亦称万神庙,是供奉众神的地方,亦是古罗马遗存下来较完整的古建筑之一。万神殿的神奇之在于:它是近乎于2000年前建造的大跨度混凝土穹顶建筑。穹顶主厅高度相当于现在的1……胃肠湿热型便秘有哪些症状?便秘在临床很常见,中医通过辨证将便秘分为不同的类型,其中主要包括胃肠湿热便秘、气滞便秘、气虚便秘、阳虚便秘、肠燥便秘等。胃肠湿热型便秘是由于肠道气机不利,传输功能受到阻滞……烟台自驾游小众线路攻略推荐烟台最美丽的城市,各岛有各岛的特色风景,在蓝天碧海间呈现出一片秀丽的江南景色!这周我们自驾游的目的地是烟台!一、烟台栈桥栈桥全长624米,宽10米,由引桥、游艇码头……江瀚新材成功登陆沪主板积极完善有机硅烷产业链布局2023年1月31日,湖北江瀚新材料股份有限公司(以下简称江瀚新材)正式登陆上交所主板,公司股票简称:江瀚新材,股票代码:603281。本次公开发行股票数量为66,666,66……Linux9自动化部署Zookeeper集群ApacheZooKeeper是一个开源服务,可以实现高度可靠的分布式协调。它常被应用于分布式系统中,管理配置信息、命名服务、分布式同步、法定人数和状态。此外,一些分布式系统依……记者凯恩确实有明显吸引力,但理想情况下曼联更想得到奥斯梅恩直播吧1月23日讯随着凯恩和热刺的合同将进入最后一年,英格兰人的未来引发了诸多猜测,而曼联被认为是可能的下家之一,尤其在红魔急需在今夏补强锋线的情况下。天空体育记者梅丽莎雷迪(……点外卖,怎么最大保证餐品安全?目前,随着线上经济的发展,很多人已经适应了点外卖来解决自己的饮食问题。点外卖具有方便灵活等优势。但是,有时我们也会在订购外卖中,有不好的体验感,如遇到不卫生的外卖等。下面,我们……一波未平一波又起,CDC追踪一种具有潜在危险的冠状病毒变体就在大家开始认为疫情可能即将结束时,美国疾病预防控制中心警告他们正在跟踪另一种新的潜在危险的冠状病毒变种,称为OrthrusCH。1。1。这个变体和它的名字首先由澳大利亚的变异……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网