当前位置:   article > 正文

每日分享html之3个logo、1个背景、1个button_html logo

html logo

我是c站的一个小博主,近期我会每天分享前端知识包括(原生的web语句,以及vue2和vue3,微信小程序的写法及知识点)本篇文章收录于html特效专栏中,如果想每天在我这学到一些东西,请关注我并订阅专栏,每天都分享前端知识哦~

欢迎关注b站:小淼前端

有更多的前端特效,及视频讲解+源代码可领取哦~

欢迎关注b站:小淼前端

有更多的前端特效,及视频讲解+源代码可领取哦~

目录

我是c站的一个小博主,近期我会每天分享前端知识包括(原生的web语句,以及vue2和vue3,微信小程序的写法及知识点)本篇文章收录于html特效专栏中,如果想每天在我这学到一些东西,请关注我并订阅专栏,每天都分享前端知识哦~

欢迎关注b站:小淼前端

有更多的前端特效,及视频讲解+源代码可领取哦~

欢迎关注b站:小淼前端

有更多的前端特效,及视频讲解+源代码可领取哦~

前端的特效视觉:

1.logo特效

2.每个文字闪光logo效果

3.文字滚动logo效果

4.流星划过天际背景效果

5.点击爱心button效果


欢迎关注b站:小淼前端

有更多的前端特效,及视频讲解+源代码可领取哦~

欢迎关注b站:小淼前端

有更多的前端特效,及视频讲解+源代码可领取哦~

前端的特效视觉:

层次结构的表现

动态效果,如缩放,覆盖,滑出网页或单个视觉元素,可帮助用户理解网页信息架构。通常是通过转场和菜单来展开网页。

表现层级关系

为了展现层与层的关系,是抽屉,是打开,还是平级切换等等。让用户知道这个界面和上一个、下一个的关系。

清晰明确

动效可以清晰地表明各种数据块中间的逻辑结构,即使在数据高度饱和的情况下也能使一切从观感上有组织性。

添加了图层

在网站制作过程中加上特效,每个元素都在用户滚动页面或者是鼠标经过的地方有动态效果,就像在平面层上多出了一个动态层,这样看起来更加有层次感。

我想借此专栏发布的内容帮助那些正在入坑前端的家人们,同时作为我以后复习的笔记,希望我们可以互相帮助,共同加油!!!

1.logo特效

 代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <title>logo特效</title>
  7. <style>
  8. *{
  9. /* 初始化 取消页面内外边距 */
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .box{
  14. background-color: #000;
  15. /* 100%窗口宽度和高度 */
  16. width: 100vw;
  17. height: 100vh;
  18. /* 弹性布局 水平、垂直居中 */
  19. display: flex;
  20. justify-content: center;
  21. align-items: center;
  22. /* 横向排列 */
  23. flex-direction: row;
  24. /* 将平面图形转换为具有透视的3D图形 */
  25. perspective: 300;
  26. -webkit-perspective: 300;
  27. overflow: hidden;
  28. }
  29. /* 动画字符所在的块 */
  30. .chars{
  31. color: #fff;
  32. /* 相对定位 */
  33. position: relative;
  34. width: 60px;
  35. height: 60px;
  36. text-align: center;
  37. line-height: 60px;
  38. font-size: 54px;
  39. font-weight: 900;
  40. /* 斜体 */
  41. font-style: italic;
  42. margin: 0 10px;
  43. opacity: 0;
  44. }
  45. /* 字符外的方框 */
  46. .ll{
  47. /* 绝对定位 */
  48. position: absolute;
  49. margin-left: -480px;
  50. width: 60px;
  51. height: 60px;
  52. border-radius: 3px;
  53. opacity: 0;
  54. }
  55. .x{
  56. border: 4px solid #f5b5fc;
  57. /* 执行动画:动画名称 时长 线性的 停留在最后一帧 */
  58. animation: xmove 2s linear forwards;
  59. }
  60. .e{
  61. border: 4px solid #96f7d2;
  62. animation: emove 2s linear forwards;
  63. /* 设置动画延迟 */
  64. animation-delay: 0.1s;
  65. }
  66. .l{
  67. border: 4px solid #f0f696;
  68. animation: lmove 2s linear forwards;
  69. animation-delay: 0.2s;
  70. }
  71. .p{
  72. border: 4px solid #fcb1b1;
  73. animation: pmove 2s linear forwards;
  74. animation-delay: 0.3s;
  75. }
  76. .i{
  77. border: 4px solid #f0f696;
  78. animation: imove 2s linear forwards;
  79. animation-delay: 0.4s;
  80. }
  81. .n{
  82. border: 4px solid #96f7d2;
  83. animation: nmove 2s linear forwards;
  84. animation-delay: 0.5s;
  85. }
  86. .a{
  87. border: 4px solid #f5b5fc;
  88. animation: amove 2s linear forwards;
  89. animation-delay: 0.6s;
  90. }
  91. /* 正中间的一条线 */
  92. .pcov{
  93. position: absolute;
  94. width: 4px;
  95. height: 60px;
  96. background-color: #fcb1b1;
  97. opacity: 0;
  98. animation: showp forwards;
  99. animation-delay: 2.3s;
  100. }
  101. /* 定义动画 */
  102. /* 显示正中间的那条线 */
  103. @keyframes showp {
  104. from{
  105. opacity: 0;
  106. }
  107. to{
  108. transform: scale(1,2);
  109. opacity: 1;
  110. }
  111. }
  112. /* A字符外方框的动画 */
  113. @keyframes amove {
  114. 0%{
  115. opacity: 1;
  116. transform: rotateY(0deg);
  117. }
  118. 50%{
  119. transform: rotateY(180deg);
  120. }
  121. 100%{
  122. opacity: 1;
  123. transform: rotateY(360deg);
  124. }
  125. }
  126. /* N字符外方框的动画 */
  127. @keyframes nmove {
  128. 30%{
  129. opacity: 1;
  130. transform: translate(30px) rotateY(135deg) scale(1.1,1.1);
  131. }
  132. 60%{
  133. transform: translate(50px) rotateY(45deg) scale(1.1,1.1);
  134. }
  135. 85%{
  136. transform: translate(80px) rotateY(103deg) scale(1.2,1.2);
  137. }
  138. 100%{
  139. opacity: 1;
  140. z-index: -99;
  141. transform: translate(80px) rotateY(77deg) scale(1.2,1.2);
  142. }
  143. }
  144. /* I字符外方框的动画 */
  145. @keyframes imove {
  146. 30%{
  147. opacity: 1;
  148. transform: translate(60px) rotateY(135deg) scale(1.2,1.2);
  149. }
  150. 60%{
  151. transform: translate(120px) rotateY(45deg) scale(1.3,1.3);
  152. }
  153. 85%{
  154. transform: translate(160px) rotateY(103deg) scale(1.3,1.3);
  155. }
  156. 100%{
  157. opacity: 1;
  158. transform: translate(164px) rotateY(77deg) scale(1.3,1.3);
  159. }
  160. }
  161. /* P字符外方框的动画 */
  162. @keyframes pmove {
  163. 30%{
  164. opacity: 1;
  165. transform: translate(60px) rotateY(135deg) scale(1.2,1.2);
  166. }
  167. 60%{
  168. transform: translate(120px) rotateY(45deg) scale(1.4,1.4);
  169. }
  170. 85%{
  171. transform: translate(240px) rotateY(135deg) scale(1.6,1.6);
  172. }
  173. 100%{
  174. opacity: 1;
  175. transform: translate(240px) rotateY(90deg) scale(1.6,1.6);
  176. }
  177. }
  178. /* L字符外方框的动画 */
  179. @keyframes lmove {
  180. 33%{
  181. opacity: 1;
  182. transform: translate(80px) rotateY(135deg) scale(1.2,1.2);
  183. }
  184. 66%{
  185. transform: translate(240px) rotateY(45deg) scale(1.6,1.6);
  186. }
  187. 95%{
  188. transform: translate(320px) rotateY(100deg) scale(1.4,1.4);
  189. }
  190. 100%{
  191. opacity: 1;
  192. transform: translate(320px) rotateY(103deg) scale(1.3,1.3);
  193. }
  194. }
  195. /* E字符外方框的动画 */
  196. @keyframes emove {
  197. 33%{
  198. opacity: 1;
  199. transform: translate(80px) rotateY(135deg) scale(1.2,1.2);
  200. }
  201. 66%{
  202. transform: translate(240px) rotateY(45deg) scale(1.6,1.6);
  203. }
  204. 95%{
  205. transform: translate(390px) rotateY(135deg) scale(1.2,1.2);
  206. }
  207. 100%{
  208. opacity: 1;
  209. transform: translate(402px) rotateY(103deg) scale(1.2,1.2);
  210. }
  211. }
  212. /* X字符外方框的动画 */
  213. @keyframes xmove {
  214. 25%{
  215. opacity: 1;
  216. transform: translate(100px) rotateY(135deg) scale(1.2,1.2);
  217. }
  218. 50%{
  219. transform: translate(260px) rotateY(45deg) scale(1.6,1.6);
  220. }
  221. 85%{
  222. transform: translate(400px) rotateY(135deg) scale(1.2,1.2);
  223. }
  224. 100%{
  225. opacity: 1;
  226. transform: translate(484px) rotateY(0deg) scale(1,1);
  227. }
  228. }
  229. /* 前两个字符的动画 */
  230. @keyframes show12 {
  231. 0%{
  232. opacity: 1;
  233. transform: rotateY(0deg);
  234. }
  235. 100%{
  236. opacity: 1;
  237. transform: rotateY(360deg);
  238. }
  239. }
  240. /* 第3个及之后的字符的动画 */
  241. @keyframes show3 {
  242. 0%{
  243. opacity: 1;
  244. transform: rotateY(90deg);
  245. }
  246. 100%{
  247. opacity: 1;
  248. transform: rotateY(360deg);
  249. }
  250. }
  251. /* 为每个字符添加动画 */
  252. .box div:nth-child(1){
  253. animation: show12 1.2s linear forwards;
  254. animation-iteration-count: 2;
  255. animation-delay: 0.2s;
  256. }
  257. .box div:nth-child(2){
  258. animation: show12 1.2s linear forwards;
  259. animation-iteration-count: 2;
  260. animation-delay: 0.4s;
  261. }
  262. .box div:nth-child(3){
  263. animation: show3 1s linear 1 forwards;
  264. animation-delay: 0.7s;
  265. }
  266. .box div:nth-child(4){
  267. animation: show3 1s linear 1 forwards;
  268. animation-delay: 0.9s;
  269. }
  270. .box div:nth-child(5){
  271. animation: show3 1s linear 1 forwards;
  272. animation-delay: 1.1s;
  273. }
  274. .box div:nth-child(6){
  275. animation: show3 1.2s linear 1 forwards;
  276. animation-delay: 1.3s;
  277. }
  278. .box div:nth-child(7){
  279. animation: show3 1.2s linear 1 forwards;
  280. animation-delay: 1.6s;
  281. }
  282. </style>
  283. </head>
  284. <body>
  285. <div class="box">
  286. <div class="chars">l</div>
  287. <div class="chars">q</div>
  288. <div class="chars">j</div>
  289. <div class="chars">_</div>
  290. <div class="chars"></div>
  291. <div class="chars"></div>
  292. <div class="chars">csdn</div>
  293. <div class="ll a"></div>
  294. <div class="ll n"></div>
  295. <div class="ll i"></div>
  296. <div class="ll p"></div>
  297. <div class="ll l"></div>
  298. <div class="ll e"></div>
  299. <div class="ll x"></div>
  300. <div class="pcov"></div>
  301. </div>
  302. </body>
  303. </html>

2.每个文字闪光logo效果

 代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <title>字体发光效果logo</title>
  7. <style>
  8. *{
  9. /* 初始化 取消页面元素的内外边距 */
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .container{
  14. /* 100%窗口高度 */
  15. height: 100vh;
  16. /* 弹性布局 水平、垂直居中 */
  17. display: flex;
  18. justify-content: center;
  19. align-items: center;
  20. background-color: #000;
  21. }
  22. span{
  23. font-size: 100px;
  24. font-weight: bold;
  25. color: #111;
  26. /* 大写 */
  27. text-transform: uppercase;
  28. /* 字间距 */
  29. letter-spacing: 5px;
  30. /* 模糊滤镜 */
  31. filter: blur(2px);
  32. /* 执行动画:动画名称 时长 线性的 无限次播放 */
  33. animation: animate 2.5s linear infinite;
  34. }
  35. /* 接下来为每一个span元素设置动画延迟时间 */
  36. span:nth-child(1){
  37. animation-delay: 0s;
  38. }
  39. span:nth-child(2){
  40. animation-delay: 0.25s;
  41. }
  42. span:nth-child(3){
  43. animation-delay: 0.5s;
  44. }
  45. span:nth-child(4){
  46. animation-delay: 0.75s;
  47. }
  48. span:nth-child(5){
  49. animation-delay: 1s;
  50. }
  51. span:nth-child(6){
  52. animation-delay: 1.25s;
  53. }
  54. span:nth-child(7){
  55. animation-delay: 1.5s;
  56. }
  57. span:nth-child(8){
  58. animation-delay: 1.75s;
  59. }
  60. span:nth-child(9){
  61. animation-delay: 2s;
  62. }
  63. span:nth-child(10){
  64. animation-delay: 2.25s;
  65. }
  66. /* 定义动画 */
  67. @keyframes animate {
  68. 0%,100%{
  69. color: rgb(255, 255, 255);
  70. /* 模糊滤镜 */
  71. filter: blur(2px);
  72. /* 文字阴影 */
  73. text-shadow:
  74. 0 0 10px #ff5e00,
  75. 0 0 20px #d1ff02,
  76. 0 0 30px #32ff7e,
  77. 0 0 40px #00a2ff,
  78. 0 0 100px #5900ff,
  79. 0 0 200px #32ff7e,
  80. 0 0 300px #ff009d,
  81. 0 0 400px #32ff7e
  82. ;
  83. }
  84. 5%,95%{
  85. color: #111;
  86. filter: blur(0px);
  87. text-shadow: none;
  88. }
  89. }
  90. </style>
  91. </head>
  92. <body>
  93. <div class="container">
  94. <span>l</span>
  95. <span>q</span>
  96. <span>j</span>
  97. <span>_</span>
  98. <span></span>
  99. <span></span>
  100. <span>C</span>
  101. <span>S</span>
  102. <span>D</span>
  103. <span>N</span>
  104. </div>
  105. </body>
  106. </html>

3.文字滚动logo效果

 代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <title>超酷的文字滚动特效</title>
  7. <style>
  8. *{
  9. /* 初始化 取消页面元素的内外边距 */
  10. margin: 0;
  11. padding: 0;
  12. }
  13. body{
  14. /* 100%窗口高度 */
  15. height: 100vh;
  16. background-color: #f2be45;
  17. /* 相对定位 */
  18. position: relative;
  19. /* 执行背景颜色变化的动画:动画名 时长 线性的 停留在最后一帧 */
  20. animation: changeBg 2.5s linear forwards;
  21. }
  22. /* 添加祝贺文本 */
  23. .container::before,
  24. .container::after{
  25. /* 绝对定位 */
  26. position: absolute;
  27. top: 5%;
  28. color: #f2be45;
  29. font-size: 70px;
  30. font-weight: bold;
  31. /* 执行显示祝贺文本的动画 */
  32. animation: showText 2.5s linear forwards;
  33. }
  34. .container::before{
  35. content: "CSDN";
  36. left: 5%;
  37. /* 沿X轴倾斜15度 */
  38. transform: skewX(15deg);
  39. }
  40. .container::after{
  41. content: "我的超人";
  42. right: 5%;
  43. /* 沿X轴倾斜-15度 */
  44. transform: skewX(-15deg);
  45. }
  46. .letter{
  47. font-size: 160px;
  48. font-weight: bold;
  49. color: #725e82;
  50. /* 转大写 */
  51. text-transform: uppercase;
  52. /* 绝对固定定位 */
  53. position: fixed;
  54. }
  55. .letter span{
  56. /* 弹性布局 水平、垂直居中 */
  57. display: flex;
  58. justify-content: center;
  59. align-items: center;
  60. width: 180px;
  61. height: 200px;
  62. }
  63. .letter.letter1{
  64. left: calc(50% - 270px);
  65. top: -400px;
  66. /* 执行动画:动画名 时长 加速后减速 */
  67. animation: letter1Animate 2.5s ease-in-out;
  68. }
  69. .letter.letter2{
  70. left: calc(50% - 90px);
  71. top: -200px;
  72. /* 执行动画:动画名 时长 加速后减速 */
  73. animation: letter2Animate 2.5s ease-in-out;
  74. }
  75. .letter.letter3{
  76. left: calc(50% + 90px);
  77. top: -800px;
  78. /* 执行动画:动画名 时长 加速后减速 */
  79. animation: letter3Animate 2.5s ease-in-out;
  80. }
  81. .letter .check{
  82. color: #f2be45;
  83. }
  84. /* 定义动画 */
  85. /* 改变背景颜色 */
  86. @keyframes changeBg {
  87. 0%{
  88. background-color: #f2be45;
  89. }
  90. 100%{
  91. background-color: #725e82;
  92. }
  93. }
  94. /* 第一个字母的滚动动画 */
  95. @keyframes letter1Animate {
  96. 0%{
  97. top: -2000px;
  98. }
  99. 100%{
  100. top: -400px;
  101. color: #725e82;
  102. }
  103. }
  104. /* 第二个字母的滚动动画 */
  105. @keyframes letter2Animate {
  106. 0%{
  107. top: -4000px;
  108. }
  109. 100%{
  110. top: -200px;
  111. color: #725e82;
  112. }
  113. }
  114. /* 第三个字母的滚动动画 */
  115. @keyframes letter3Animate {
  116. 0%{
  117. top: -3000px;
  118. }
  119. 100%{
  120. top: -800px;
  121. color: #725e82;
  122. }
  123. }
  124. /* 显示祝贺文本 */
  125. @keyframes showText {
  126. 0%{
  127. color: #f2be45;
  128. }
  129. 98%{
  130. color: #725e82;
  131. text-shadow: none;
  132. }
  133. 100%{
  134. color: #fff;
  135. /* 文字阴影 */
  136. text-shadow: 5px 5px 0 #f2be45;
  137. }
  138. }
  139. </style>
  140. </head>
  141. <body>
  142. <div class="container">
  143. <div class="letter letter1">
  144. <span>a</span>
  145. <span>b</span>
  146. <span>c</span>
  147. <span>d</span>
  148. <span class="check">l</span>
  149. <span>f</span>
  150. <span>g</span>
  151. <span>h</span>
  152. <span>i</span>
  153. <span>j</span>
  154. <span>k</span>
  155. <span>l</span>
  156. <span>m</span>
  157. <span>n</span>
  158. <span>o</span>
  159. <span>p</span>
  160. <span>q</span>
  161. <span>r</span>
  162. <span>s</span>
  163. <span>t</span>
  164. <span>u</span>
  165. <span>v</span>
  166. <span>w</span>
  167. <span>x</span>
  168. <span>y</span>
  169. <span>z</span>
  170. </div>
  171. <div class="letter letter2">
  172. <span>a</span>
  173. <span>b</span>
  174. <span>c</span>
  175. <span class="check">q</span>
  176. <span>e</span>
  177. <span>f</span>
  178. <span>g</span>
  179. <span>h</span>
  180. <span>i</span>
  181. <span>j</span>
  182. <span>k</span>
  183. <span>l</span>
  184. <span>m</span>
  185. <span>n</span>
  186. <span>o</span>
  187. <span>p</span>
  188. <span>q</span>
  189. <span>r</span>
  190. <span>s</span>
  191. <span>t</span>
  192. <span>u</span>
  193. <span>v</span>
  194. <span>w</span>
  195. <span>x</span>
  196. <span>y</span>
  197. <span>z</span>
  198. </div>
  199. <div class="letter letter3">
  200. <span>a</span>
  201. <span>b</span>
  202. <span>c</span>
  203. <span>d</span>
  204. <span>e</span>
  205. <span>f</span>
  206. <span class="check">j</span>
  207. <span>h</span>
  208. <span>i</span>
  209. <span>j</span>
  210. <span>k</span>
  211. <span>l</span>
  212. <span>m</span>
  213. <span>n</span>
  214. <span>o</span>
  215. <span>p</span>
  216. <span>q</span>
  217. <span>r</span>
  218. <span>s</span>
  219. <span>t</span>
  220. <span>u</span>
  221. <span>v</span>
  222. <span>w</span>
  223. <span>x</span>
  224. <span>y</span>
  225. <span>z</span>
  226. </div>
  227. </div>
  228. </body>
  229. </html>

4.流星划过天际背景效果

代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <title>流星划过天际的背景效果</title>
  7. <style>
  8. *{
  9. /* 初始化 */
  10. margin: 0;
  11. padding: 0;
  12. }
  13. body{
  14. /* 100%窗口高度 */
  15. height: 100vh;
  16. /* 溢出隐藏 */
  17. overflow: hidden;
  18. }
  19. .container{
  20. /* 绝对定位 */
  21. position: absolute;
  22. top: 0;
  23. left: 0;
  24. width: 100%;
  25. height: 100%;
  26. background: url("space.jpg") no-repeat;
  27. /* 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域 */
  28. background-size: cover;
  29. /* 定位背景图像为正中间 */
  30. background-position-x: center;
  31. /* 执行动画:动画名称 时长 线性的 无限次播放 */
  32. animation: animateBg 5s linear infinite;
  33. }
  34. span{
  35. position: absolute;
  36. top: 50%;
  37. left: 50%;
  38. width: 4px;
  39. height: 4px;
  40. background-color: rgb(196, 4, 4);
  41. border-radius: 50%;
  42. /* 发光效果 */
  43. box-shadow: 0 0 0 4px rgba(255,255,255,0.1),
  44. 0 0 0 8px rgba(255,255,255,0.1),
  45. 0 0 20px rgba(255,255,255,1);
  46. /* 执行动画 */
  47. animation: animate 3s linear infinite;
  48. }
  49. /* 拖尾效果 */
  50. span::before{
  51. content: "";
  52. position: absolute;
  53. top: 50%;
  54. transform: translateY(-50%);
  55. width: 300px;
  56. height: 3px;
  57. background: linear-gradient(90deg,rgb(251, 255, 4),transparent);
  58. }
  59. /* 接下来分别为每一个流星设置位置、动画延迟时间、动画时长 */
  60. span:nth-child(1){
  61. top: 0;
  62. right: 0;
  63. /* initial关键字用于设置CSS属性为它的默认值 */
  64. left: initial;
  65. /* 动画延迟时间 */
  66. animation-delay: 0s;
  67. /* 动画时长 */
  68. animation-duration: 1s;
  69. }
  70. span:nth-child(2){
  71. top: 0;
  72. right: 80px;
  73. left: initial;
  74. animation-delay: 0.2s;
  75. animation-duration: 3s;
  76. }
  77. span:nth-child(3){
  78. top: 80px;
  79. right: 0;
  80. left: initial;
  81. animation-delay: 0.4s;
  82. animation-duration: 2s;
  83. }
  84. span:nth-child(4){
  85. top: 0;
  86. right: 180px;
  87. left: initial;
  88. animation-delay: 0.6s;
  89. animation-duration: 1.5s;
  90. }
  91. span:nth-child(5){
  92. top: 0;
  93. right: 400px;
  94. left: initial;
  95. animation-delay: 0.8s;
  96. animation-duration: 2.5s;
  97. }
  98. span:nth-child(6){
  99. top: 0;
  100. right: 600px;
  101. left: initial;
  102. animation-delay: 1s;
  103. animation-duration: 3s;
  104. }
  105. span:nth-child(7){
  106. top: 300px;
  107. right: 0;
  108. left: initial;
  109. animation-delay: 1.2s;
  110. animation-duration: 1.75s;
  111. }
  112. span:nth-child(8){
  113. top: 0;
  114. right: 700px;
  115. left: initial;
  116. animation-delay: 1.4s;
  117. animation-duration: 1.25s;
  118. }
  119. span:nth-child(9){
  120. top: 0;
  121. right: 1000px;
  122. left: initial;
  123. animation-delay: 0.75s;
  124. animation-duration: 2.25s;
  125. }
  126. span:nth-child(10){
  127. top: 0;
  128. right: 450px;
  129. left: initial;
  130. animation-delay: 2.75s;
  131. animation-duration: 2.25s;
  132. }
  133. /* 定义动画 */
  134. /* 背景缩放动画 */
  135. @keyframes animateBg {
  136. 0%,100%{
  137. transform: scale(1);
  138. }
  139. 50%{
  140. transform: scale(1.2);
  141. }
  142. }
  143. /* 流星划过动画 */
  144. @keyframes animate {
  145. 0%{
  146. transform: rotate(315deg) translateX(0);
  147. opacity: 1;
  148. }
  149. 90%{
  150. opacity: 1;
  151. }
  152. 100%{
  153. transform: rotate(315deg) translateX(-1000px);
  154. opacity: 0;
  155. }
  156. }
  157. </style>
  158. </head>
  159. <body>
  160. <div class="container">
  161. <!-- 10个span -->
  162. <span></span>
  163. <span></span>
  164. <span></span>
  165. <span></span>
  166. <span></span>
  167. <span></span>
  168. <span></span>
  169. <span></span>
  170. <span></span>
  171. <span></span>
  172. </div>
  173. </body>
  174. </html>

5.点击爱心button效果

 代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
  6. <title>点击爱心button的动画效果</title>
  7. <style>
  8. *{
  9. /* 初始化 */
  10. margin: 0;
  11. padding: 0;
  12. }
  13. body{
  14. background: rgb(6, 216, 253);
  15. /* 100%窗口高度 */
  16. height: 100vh;
  17. /* 弹性布局 居中 */
  18. display: flex;
  19. justify-content: center;
  20. align-items: center;
  21. /* 自定义属性,可通过var函数对其调用 */
  22. --c: #ff6b81;
  23. }
  24. svg{
  25. width: 200px;
  26. /* 相对定位 */
  27. position: relative;
  28. /* z-index: 10; */
  29. }
  30. #heart{
  31. /* 填充颜色 */
  32. fill: #eee;
  33. /* stroke属性可应用于任何种类的线条,文字和元素,就像一个圆的轮廓 */
  34. stroke: var(--c);
  35. /* 线条宽度 */
  36. stroke-width: 40px;
  37. /* 设置线条为虚线,虚线的长度 */
  38. stroke-dasharray: 2600;
  39. /* 线条的位移 */
  40. stroke-dashoffset: 2600;
  41. /* 端点为圆头 */
  42. stroke-linecap: round;
  43. }
  44. span{
  45. display: block;
  46. width: 24px;
  47. height: 24px;
  48. background-color: transparent;
  49. border-radius: 50%;
  50. /* 绝对定位 居中 */
  51. position: absolute;
  52. top: 50%;
  53. left: 50%;
  54. transform: translate(-50%,-50%) scale(0);
  55. /* 设置各个方向的阴影 */
  56. /* 通过var函数调用自定义属性--c,设置阴影颜色 */
  57. box-shadow: 0 -160px 0 var(--c),
  58. 0 160px 0 var(--c),
  59. -160px 0 0 var(--c),
  60. 160px 0 0 var(--c),
  61. -120px -120px 0 var(--c),
  62. 120px -120px 0 var(--c),
  63. 120px 120px 0 var(--c),
  64. -120px 120px 0 var(--c);
  65. }
  66. /* 勾选复选框执行各个动画 */
  67. #checkbox:checked + svg #heart{
  68. /* 执行动画: 动画名 时长 线性的 停留在最后一帧 */
  69. animation: drawHeart 1s linear forwards;
  70. }
  71. #checkbox:checked ~ span{
  72. /* 执行动画: 动画名 时长 加速后减速 停留在最后一帧 */
  73. animation: blink 0.5s ease-in-out forwards;
  74. /* 动画延迟时间 */
  75. animation-delay: 0.85s;
  76. }
  77. #checkbox:checked + svg{
  78. /* 执行动画: 动画名 时长 线性的 停留在最后一帧 */
  79. animation: beat 1s linear forwards;
  80. }
  81. label{
  82. /* 鼠标移入,光标变小手 */
  83. cursor: pointer;
  84. }
  85. /* 定义动画 */
  86. /* 画心的动画 */
  87. @keyframes drawHeart {
  88. 0%{
  89. stroke-dashoffset: 2600;
  90. }
  91. 80%{
  92. fill: #eee;
  93. stroke-dashoffset: 0;
  94. }
  95. 100%{
  96. fill: var(--c);
  97. stroke-dashoffset: 0;
  98. }
  99. }
  100. /* 小圆点闪出的动画 */
  101. @keyframes blink {
  102. 0%{
  103. transform: translate(-50%,-50%) scale(0.5);
  104. opacity: 0.8;
  105. }
  106. 50%{
  107. transform: translate(-50%,-50%) scale(1);
  108. opacity: 1;
  109. }
  110. 100%{
  111. transform: translate(-50%,-50%) scale(1.1);
  112. opacity: 0;
  113. }
  114. }
  115. /* 心跳动的动画 */
  116. @keyframes beat {
  117. 0%{
  118. transform: scale(1);
  119. }
  120. 70%{
  121. transform: scale(1);
  122. }
  123. 80%{
  124. transform: scale(1.2);
  125. }
  126. 100%{
  127. transform: scale(1);
  128. }
  129. }
  130. </style>
  131. </head>
  132. <body>
  133. <label for="checkbox">
  134. <input type="checkbox" id="checkbox" hidden>
  135. <svg t="1639041971928" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3128"><path d="M512 896a42.666667 42.666667 0 0 1-30.293333-12.373333l-331.52-331.946667a224.426667 224.426667 0 0 1 0-315.733333 223.573333 223.573333 0 0 1 315.733333 0L512 282.026667l46.08-46.08a223.573333 223.573333 0 0 1 315.733333 0 224.426667 224.426667 0 0 1 0 315.733333l-331.52 331.946667A42.666667 42.666667 0 0 1 512 896z" p-id="3129" id="heart"></path></svg>
  136. <span></span>
  137. </label>
  138. </body>
  139. </html>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/92702
推荐阅读
相关标签
  

闽ICP备14008679号