最近做一个果树活动,其中有一段金币红包下落的动画是用css写的。批量生成了多个金币和红包元素,起始位置随机。

但是如果手动写一大堆样式代码就太不方便了,记得less可以写循环,又搜了一下less可以用js生成随机变量。于是实现如下:
批量生成红包和元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <div class="tree-box"> <img :class="['tree-head', { shake: treeShake }]" src="@/assets/imgtree-head.png" /> <img class="tree-body" src="@/assets/img/tree-body.png" /> <div :class="['coins', { up: coinUp, down: coinDown }]"> <div :class="[ 'coin-item', { redbag: index % 2 === 0 }, 'coin-item-' + (index + 1), ]" v-for="(item, index) in 15" :key="index" ></div> </div> </div>
|
这里直接在代码里写了个数量,下面less中保持一致即可。设置单数为金币,双数为红包。
下面是编译后的其中一个样式,先设置opacity为0。当下落时,先移动到顶部位置并可见,然后下落,最后再隐藏。只要控制这些下落的红包或者金币,每个的水平位移随机,大小也随机,动画延迟时间也随机。让它们的位置、大小、开始下落的时间都错落开。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| .page .section-tree .tree-box .coins .coin-item { position: absolute; top: 2.666667rem; left: 4.666667rem; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAA4CAYAAABdeLCuAAAR9ElEQVRoQ62aebRddXXHP79z7jy/lzcGEpKQiQgJIUaQoVhE1ATHQl2lahUIWue2q1rbrmJdtUurf2i71EW1WrVdAhoVS11KCSpgBWMRRAIGMrwMb0recOfp3PPr2md475z73suA+a31hnvu7+zf/u5573MU53DpmXcUsOLXEEluR6UvxkiswcgOEsnnMPNRjEIblS9BzzgqdwjST0NiL/CIUqp4rlhRvyshPbKzh1jkjzB5C9q4EoiAkPV+lAEqAUYcjDSoDER6ITIIkfPAWAmq34L0o6DuAe5WSs3+Lny9aFB6fOcabOMjGLwVSJ0ZEwJQjoyAkYRID0SGIboaouvBWA3kq6C+DnxaKXXozOiGd501KH301b1EUh8n1nMH5sooRgwaz4BdWuR8n7xegjcFSgBmILoc4ushtgWMdUCmBeqLwMfOVnNnBUqPveEmYkOfJ/XKAeJXidkAGsqfhdrPzkKoi4E0XPOMrYTkVoi+FNQKIDoOvFspdd+ZHnBGoPTzr42TTvwL6UtvJ/M2hbHK8xnAHoGZfwRLzvaWUDUNKLfR1Ta0bOjYYCqIm6hsDGKGK5AFywCzB+IbIHUFmFvFJGXjF4A/U0q1TwfutKB06U3LqHe+T3zbleTeD6rHo6ldQOW7oLEPIgZ6tgUjFThegfEqdISXxUxQQSoCg0k4L41amXHAhkAqAb4Cki+D2Ms9rZk/Bd6klJo5FbBTgtKHXz1MIroHI30RvX8H5ib3YF2F9v9C5bugx9EHS/DUSTjZcM8SJUQUxOTHREUV+DzboC2gabsatDxtrc7Cxb2o3niAX7mvF5JbIHktGHJ+/CngVUqpE0sBWxKULr66l3rsEWATKg65WyCyEqwRaD4OnUPoY7Pw6BiUWi6QhAE5E9UTg7QJcWFKOVqcV5iCDmDZ0OxAxULPtqEknzWsysC2flQ6Ms+zkYL4JkhfB+Y2IPkr4PeXym2LgtK/2RRj2Zo9KHX1PGUTJOc4Ygb9yBi8UHTBZEzUYBR6PTDiT0LZdxnnPhuUaFnu9r6U/+VHzLTWgekWelJ8UMP2QdTaXMBPY66fpV8JkcuB9APADqWUiCi0Fgc1vvOfwXj/YurVdQ3/fcgJAqQM1HACBqLO/45WHMQBss6/PhgPhO9qc6C9PTYuuMkWeqwFq7Kolw2C4dFTUYivg/T1HrDsJ5VSHz0tKD124w4U93tZMrRfFzvwXwfdSLYsilqRgELUBaP1vIk5yvCuBRTjgg0AdKj7Kg0gFGMottHH6pBNoK5ZPi8wopBY45pi5CobctcppSSAzK2QpvTkKzLY2X2AJIgwoGoHvnvQMSM1FIMLkpAUk/S2haTuMStA5bqYqGwUTSwaxuWyLxRPGJ7W9LEGpOKoq4cDchZ/XQOZG0Rjz0PhEqVU02c4DGp05ycwjL9eAEgkt/sAtCzUijicn3CimqONOVAeU46GPCZ9/zEEXFBDfm3oSWJOIJImArhFs60OCLC+NFwqyd5fJiQ2usDMi/5KqeFPLQClx28YgNhBUOkQKEOhf3gMxisuIDE5J6eEIoF7ixMIAg7jMCtBQ5gNJFrf53yBBAUjoGz5JRcdFXvA6vCSAVgeYM9IQGq7+Ng0XLBaqWVOrTanKT268x8wjL9ZoKUDZXhkFAZjqLVJD1CXz8hNhQScn3P5OF6GqZpHyqscfE05sgj4mwSBAQnZppvnqq0AKI89wdi04GQbrloBUQ+ssB87HwrXgrrkw0pt+vQcKK23RZlYfgwYCIHqaPQ9Lzj5Rm1IQ9YzuTmz8swsYsIl/fNRSogcmoWpuqfBoEl5ZiiMSoC5uB+SXk4Sbf5qAtqSoX1f9U3UhooNqRRs7J0nKDksvxViVx+Eq9YqpVw70OOvfz3oBQWjfmoanj6JWpeCgdi8D/kH+gJLRGFTXzj6SWJ9enI+AAQjn2OKCi4sQH9X17JvCoqez0tuC5aHtoJZCy4b9mpHTy+ZC9z8xaZrlVr/sAtq9MavY6i3hbRki5YOQM5wQTkFqG923s65ZAqdoTTminzYekeKMFmdvxYMAoU4bFwW2q9bHTp7DhPJJ1wBOfu9DO1bhyTmfBouCCTmRBbyVwDXfE6prR/yNHXjGKih4An6cBl+NoZan4K+qCsxJ9p50c1PqiJ1DaWnJ8jdtjVsglIKPTk+H9F8qUtdeMnAvH96B1fv348x2yC5RszL8IJLV+QUoJaCLQF2xfx7N4K64bdKXbdR6aM3riOq9i8IEA+PwWwNtU56HA/QXJseDMVyikHj6CzqwgLxy5Yv1NZYNWxG6wrQFza71jMnqH7vWTJbhogWkq55BtOALxA5TnxuwyCkoq5vSTDuHQDjVRrWDyo9fuNbQN0dtgONvvcAankUhpMLo7djEr4puqCEh9ITx8m+41KUc5i3pPp4ctKtyp0oGXP9L7Ck5yp++f+IpmKkN0ouCkRHvz709/smPJCFoYx7VTxjWRIMKXa33aD02I47UebHQqeUmuj7R1AbJeJJZPJy0lzp44Py/Mz72DpRppOPk3yFNJGBNVoGMWfZftmgm7gDq3LvM1hHiuS3r0AFyyvZ0w3K/5xNwGrp7RRIcl8WBbUK1OXvU3p055cxjNtCkhspwxMTrj85OSHQOszHWs+/AlIFKr8ZJ3nzRZi9AfOSKvzJCTgvMy9d78A5s7tkiGhPyjU5T6nOlhAoLx3ItUQENkgGkvZGQ68IPw/GpZ8U8/sOqDeFQD03izo0DatSblvuBIlgceef5AWNudMVVqlBiw6pHevD2pK2Ph0wSwluxSalu35JbCBDSoKDTzYYxoVKCKT3pfRoL/GChTShBdF+VIY2/yqgfiRhIwTq1ydRU2UYEjv1eyFvh+QbARgsrsWcRHJ2x2Gg9tsTxK9bhTmUDQMLHaKpfGsfnaMlcluWo/y2xS9yHN4DAWkuGXvXxUy3SFBSkFCQ9SzKGP6a0mOvexCFZK65pQXUbBX6g621D8QvYj1TGEzD+p7FOpWlAck3lk1nqoaKGBim52PtDoyUoNT28lNXUe8Dlb9SXvmgUgrSAkr8q/DvSo+88WHinWtCHOybhumy28k6gvEDhXzwNOXfsLnfrfvO1apa8NhooEzqIuwDE7fYPOx+mTfdeYizUp9X7edu/lWk0Lg0dKsMUkZnIC+lURdR3+y87sHOxzEu7nPnEOdg6WITtXfCE6ZH0E8hAYt0zH3ToLuhz5t0y/9N9SnVfOKtT8WWFzeH+JmswXMn3JzS3R50MV4/OktzqoJRSKKiBipiomLy18DsSxG/ckG/SedIEVvGARJZxZc8f9KVNvVHj5Bd2YsR9UwyaHLBs/NxuLDP1VBeIp/rdPYR61Oq+tN37k1tOPnSEK/SmD1yFPq9Ijb0ZTAKgt2wKD09ihZ/CEpSQ2R1gezbwvKSLZVvP0t73xITLglk21agBJQTDQOhMBjel2dheQ4yBiTnraT1WP3vVfG+O/4nd/nY9Qss5/FRkDgR7G4DBayzX7TYk3BbAZF620ZbNrptoWWmFzUwly18dmCNzGJP1bFlv5Q8ztATdLlBpGYTK3j3BCNgd+7asAyk8O015+vNjqb+rfIH1fQ97/lGbtuxt5qZruSwfwbKNdc0uv0qKIErh70a7Bw4lJA4VIT9gSc5Qe34LApPW4ddDUmP50m4M96m/sPKTWpm9wfujA8f+1hyTdeIutwEMRFpOYJjLudRTGBt6XM713O1pPv9ZXegCBLX0J+GVT2ulubyGzT3Nqg/2bhUzXznQ2+Gsd2FK/32O0Dg1xPQ8WeF3WneBVefKGNsKGCIKcgBhnKChPOTjWFkg7nOo11ruyYjEdOxBE9Qlk39gYMkpTJYcmnYNAB9cWeIOrdkHrq73Eyp0Zya2v3+83WlciR/+aSKFLrC8nQdDk6FeySfild4NsZL1Eemw5NXb09i+3KSO+RZU3iVvriXzonanL861UTERMscQmt6tl0QHJ94N3vJXoR3UR/0BHxJhryjFrUf1R7L3b7n5Y6Ipu7+0+dU8vCGnssD82ufj2cnob700xOtNY3RIlal5fU/2pkwy/QoftmQUy51r/IX9tKZrqO9BjP4fWwgR/oCaRIDa67VwZ0oDclEK6yA2gNV7OPWJ7K3P/S3DqiZ3e/9TG306F8MvNYiElSpY18teOZEYC7uHdY9xOwye+fjhTnY4D/6md9gfXc/kbhfrXhCcGbtBmpuxOwd4AMS6x/OwoZC2OxESyctqt+viiCvyL/rx487dxZ3v2d7s1T9hUodpu/aQO/v8zFZAZk3LLZOBU4ez1zUJXXLpnn3c8R70+EcFJojdh0kgKTx3DroVuNdwarygxJ6Qh/I3f7QWrlzLpRN3/vup0oHn988+HqTROgZkXfA4RkQP1hyOf1J6NuOPCHZPog54HWoQOMXx1HPThPvzy45gV4wmZaAIoD8iVbglNYLDeo/aRCJqI9mbnvokyFQM9/edWtzpvpvzdIBVtw6wPxk2vdTDS/MwKw3ywsbfeDTfNNo1ZpU9k9inJfDiEewa206R4tkNgwSzXlFcHdQ7RaaFK5bxI/klYWw0Oxqh+K9RaLKrOi6WpV7356pECh91x3RmVxnf+nw4VXJC2sM7ByAcjCNeyXLoRk46WvMr26XUJ/WVA6epD09r2EjGSPvNHenyugePSmVZH4+EF/Y2tia2e/NYMwYmBHjnzK37vmIz0WIcvHuP/njZq3zH7PPP0f/jiyF7XkouY3f3BLJjpfhWDHcager9y5LtMpNtCX5TjkzPWcOsdgKak06BAGUldnDws3FPbPYz9tEE5EpW9fW52//+fSioOTU2W++/ceVidlrq6OHGL5lkOxLMlC1odFlJ9WmO1qWNv1cLTlCctaqPKzLBWbm4QPKPy/S2NskIYldcUfutoe+FNyxQAbFb9y8tkP8ydKR4+nG7CTLbxkiuzkHbe2Ck7/+knArpni85D6/fTHLJydpZzADG/KQkf5ocW2WHp2l9niNVCGFaZoPpG978DXBSUnIp4L8VP7zprc3WtGvzR4+TLtSZOh1AxSulpZdHqtoaHgPnYPgZhtwsgqzzbmq+4wwyjBmKA0rMm7+Wco0bc3UD6doPN0ksyxNJGKMYnS2Zd75k8ALHO6JS3pr+Rtv/GyjEfng7MgRrFqFwmVZBt48hOFncqkGxCSldWgF2Jfr8jhGKoyG5WpQBpqyJHqJ88cjkI/CsgTIU3iZBp1idcoWE/dMoE9qMssymFFVt23juvyuBx9b7LYlqek7Mcpr33BPo2bcVDp6nHatQqw3wtDNQ6TWhp/LOY2cPG2UdyKkNwqOury23zncqfG8dyy6wvPigUNTfrLMiftPkIgnSPekMSOqrW3rptwdD39/KTmcUkT6rm3Rcnz4m62W+QfF4xO0yu5LVblLMvTv6Cfa55U6Z2RnZ7epcbThgGkdb5HpTZHIJzFNo4lt35Ld9ePvnIraaZPFvTdjvnbnaz7XtqLvrUwWqc3MoKUdkdHA5iw91xRIrEydUdo5LSxbU91fZeaRWaov1Eik4w4gmbEbJjN0Ijdldz3w0OnonBaUT6D01et32Tr2uUa5naycmKZdm68s4gMxcpuzpDemSJyfDDVup2NA2vn6SJ3qs1VKT5WxSh2i8SipQpxENokZNcQVn7As/rDwrocOnI7eKQPFYjeXv3T9Rdo0vtKx1BX1YoPaTAmr2ULaD38ZMUXyvATx4RiRQoxI1sSU13vEhzoaq25jlS2smRbN0Rb10Sa6o53qXMAkszES2QSRWATDUC2t9KczI+MfV3+/LxiOTontjDXlU7nzTowPr7r+HbbNxy2L85rVFo1SjVa9iW11QsOf00nVMBRm1CSaiBJPx4inYs5nZcj4VP0gaqu/jO968NnT0en+/qxB+QT0V1+RqGjjncAH7I7a2Glr2o027UYLq2VhtzvYth3WoqEwTAMjYhKJmUTiUaLxCIaYmIwBFG1Q95nK/Ezq1gceP1sw/v4XDSp4YOmu669WEX0z6Bu1VmvEHKWrnets/bdZlHLMTGo/eQdLootSTpb7mW1wn2lxd2bXHm/q8mIhnZuYFTq99pXfW9HpmNsx1SaNWo1mUJ5JCP9oLe/FzqD0cbR6Xtv8uliu/XLFn/98sX7mRaP6f5giteay0xUwAAAAAElFTkSuQmCC) no-repeat 50%/100% auto; background-repeat: no-repeat; background-position: 50%; background-size: 100% auto; width: .706667rem; height: .746667rem; opacity: 0 }
.page .section-tree .tree-box .coins.down .coin-item { z-index: 3 }
.page .section-tree .tree-box .coins.down .coin-item.redbag { background: url(data:image/png;base64,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) no-repeat 50%/100% auto }
.page .section-tree .tree-box .coins.down .coin-item-15 { animation: anim-coin-down--156 .5s ease-in .49735386s 1 }
@keyframes anim-coin-down--156 { 0% { transform: translate(-1.456rem,.4rem) scale(1.08522808); opacity: .7 }
5% { transform: translate(-1.456rem,.4rem) scale(1.34773069); opacity: 1 }
95% { transform: translate(-1.456rem,6rem) scale(1.08161233); opacity: 1 }
to { transform: translate(-1.456rem,6rem) scale(1.40401079); opacity: 0 } }
|
在less中实现随机
在less中开启javascript
一开始按照网上的写法在less中写js代码,直接就报错了,查了下是要设置下less编译选项。这个项目是用vue-cli搭建的,在vue.config.js中设置loader配置。开始设置了javascriptEnabled为true还是报错,原来是loader版本问题,低版本loader加一个math: ‘always’就可以了。
1 2 3 4 5 6 7 8 9
| css: { loaderOptions: { less: { javascriptEnabled: true, math: 'always', }, },
|
使用随机数
在less中,后面的部分不会被less处理。在后面再接上反引号来写js表达式。如下所示,less是支持变@开头的变量和mixins函数的,我们写一个公用的动画mixins,接收变量。然后在金币元素上调用这个函数,传入随机数。实际上,延时时间那里我在函数里面又定义了一个变量。这个可以改成外部传入两个随机数的。mixins内部的样式,直接用less自带的计算,这里是带单位计算。如果想生成变量带单位,可以后面接上*1px或者/1px这样写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| .coin-item-15 { .anim-coin-down(~`Math.round((Math.random()-0.5) * 750)`); }
.anim-coin-down(@random) { @name: ~` "anim-coin-down-@{random}" `; @s: ~`Math.random() `; @keyframes @name { 0% { transform: translate(@random*0.7px, 30px) scale(1 + @s*0.5); opacity: 0.7; } 5% { transform: translate(@random*0.7px, 30px) scale(1 + @s*0.5); opacity: 1; } 95% { transform: translate(@random*0.7px, 450px) scale(1 + @s*0.5); opacity: 1; } 100% { transform: translate(@random*0.7px, 450px) scale(1 + @s*0.5); opacity: 0; } } animation: @name ease-in 1 0.5s @s*0.5s; }
|
在less中使用循环语句
less不像sass有直接的for循环语句,但是可以通过变量和when配合实现。
如下,我们用变量和when配合,每次去执行一个变量拼接的mixins,就是我们上面的.coin-item-15的一系列实现。然后再调用自身,就实现了循环。
1 2 3 4 5 6 7
| .loop-coin-item-down(@i) when(@i > 0) { .coin-item-@{i} { .anim-coin-down(~`Math.round((Math.random()-0.5) * 750)`); }
.loop-coin-item-down((@i - 1)); }
|