• uni-app 小宠物 - 会说话的小鸟


    在 template 中

    1. <view class="container">
    2. <view class="external-shape">
    3. <view class="face-box">
    4. <view class="eye-box eye-left">
    5. <view class="eyeball-box eyeball-left">
    6. <span class="pupil-box"><span class="pupil-reflex">span>span>
    7. view>
    8. view>
    9. <view class="eye-box eye-right">
    10. <view class="eyeball-box eyeball-right">
    11. <span class="pupil-box"><span class="pupil-reflex">span>span>
    12. view>
    13. view>
    14. <view class="nose-box">
    15. <view class="nostril-tip">view>
    16. <view class="nostril-tip">view>
    17. view>
    18. <view class="mouth-box">
    19. <view class="upper-teeth">view>
    20. <view class="lower-teeth">view>
    21. view>
    22. view>
    23. view>
    24. view>

    在 style 中

    1. .container {
    2. $overall: #0097d9; // 整体背景
    3. // 眼睛部分
    4. $eyeBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 眼睛部分的阴影
    5. $eyeLeftBg: linear-gradient(to bottom, #fdfdfd, #c3efea); // 左眼背景
    6. $eyeRightBg: linear-gradient(to bottom, #fdfdfd, #e6d6f6); // 右眼背景
    7. // 眼球部分
    8. $eyeballLeftBg: linear-gradient(135deg, rgba(188, 248, 177, 0.7), #2fa38c 75%); // 左眼球背景
    9. $eyeballRightBg: linear-gradient(135deg, #f1a183, #8535cd); // 右眼球背景
    10. // 瞳孔部分
    11. $pupilBg: #2c2f32; // 瞳孔部分的背景
    12. $pupilBoxShadow: 0rpx 0rpx 20rpx rgba(0, 0, 0, 0.2); // 瞳孔部分的阴影
    13. $pupilReflexBg: #ebebeb; // 瞳孔反射部分的背景
    14. $pupilReflexBoxShadow: 20rpx 20rpx 20rpx rgba(255, 255, 255, 0.2); // 瞳孔反射部分的阴影
    15. // 鼻子部分
    16. $nostrilBg: rgba(0, 0, 0, 0.5); // 鼻孔的背景
    17. $nostrilBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.1); // 鼻孔的阴影
    18. // 嘴巴部分
    19. $mouthBg: #810332; // 嘴巴背景
    20. $mouthBorder: 50rpx solid #ffc333; // 嘴巴的边框
    21. $mouthBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 嘴巴的阴影
    22. $mouthBeforeBg: #400018; // 嘴巴内背景(在元素的内容前面插入新内容)[伪元素]
    23. $mouthAfterBg: #dc1b50; // 嘴巴内舌头(在元素的内容之后插入新内容)[伪元素]
    24. $upperBg: #fff; // 牙齿背景
    25. position: fixed;
    26. top: -70rpx;
    27. right: -150rpx;
    28. transform: scale(0.24);
    29. -o-transform: scale(0.24); // Opera
    30. -ms-transform: scale(0.24); // IE 9
    31. -moz-transform: scale(0.24); // Firefox
    32. -webkit-transform: scale(0.24); // Safari 和 Chrome
    33. z-index: 9999;
    34. .external-shape {
    35. display: flex;
    36. justify-content: center;
    37. position: relative;
    38. width: 340rpx;
    39. height: 800rpx;
    40. border-top-left-radius: 400rpx;
    41. border-top-right-radius: 400rpx;
    42. background-color: $overall;
    43. box-shadow: 40rpx 40rpx 120rpx $overall;
    44. transform: rotate(-50deg);
    45. -o-transform: rotate(-50deg); // Opera
    46. -ms-transform: rotate(-50deg); // IE 9
    47. -moz-transform: rotate(-50deg); // Firefox
    48. -webkit-transform: rotate(-50deg); // Safari 和 Chrome
    49. }
    50. .face-box {
    51. display: flex;
    52. align-items: center;
    53. justify-content: center;
    54. flex-direction: column;
    55. position: absolute;
    56. top: 14%;
    57. width: 75%;
    58. height: 320rpx;
    59. }
    60. // 眼睛部分
    61. .eye-box {
    62. position: absolute;
    63. top: -10%;
    64. width: 130rpx;
    65. height: 130rpx;
    66. margin: 6rpx;
    67. background: #fff;
    68. transform: translateX(-50%);
    69. -o-transform: translateX(-50%); // Opera
    70. -ms-transform: translateX(-50%); // IE 9
    71. -moz-transform: translateX(-50%); // Firefox
    72. -webkit-transform: translateX(-50%); // Safari 和 Chrome
    73. box-shadow: $eyeBoxShadow;
    74. border-radius: 100%;
    75. // 眼球部分
    76. .eyeball-box {
    77. position: absolute;
    78. top: 25%;
    79. left: 50%;
    80. width: 55%;
    81. height: 55%;
    82. transform: translate(-50%);
    83. -o-transform: translate(-50%); // Opera
    84. -ms-transform: translate(-50%); // IE 9
    85. -moz-transform: translate(-50%); // Firefox
    86. -webkit-transform: translate(-50%); // Safari 和 Chrome
    87. border-radius: 100%;
    88. z-index: 100;
    89. // 瞳孔部分
    90. .pupil-box {
    91. position: absolute;
    92. top: 25%;
    93. left: 50%;
    94. width: 55%;
    95. height: 55%;
    96. background: $pupilBg;
    97. transform: translate(-50%);
    98. -o-transform: translate(-50%); // Opera
    99. -ms-transform: translate(-50%); // IE 9
    100. -moz-transform: translate(-50%); // Firefox
    101. -webkit-transform: translate(-50%); // Safari 和 Chrome
    102. box-shadow: $pupilBoxShadow;
    103. border-radius: 100%;
    104. .pupil-reflex {
    105. position: absolute;
    106. top: 10%;
    107. left: 25%;
    108. width: 14rpx;
    109. height: 14rpx;
    110. background: $pupilReflexBg;
    111. transform: translate(-50%);
    112. -o-transform: translate(-50%); // Opera
    113. -ms-transform: translate(-50%); // IE 9
    114. -moz-transform: translate(-50%); // Firefox
    115. -webkit-transform: translate(-50%); // Safari 和 Chrome
    116. box-shadow: $pupilReflexBoxShadow;
    117. border-radius: 100%;
    118. }
    119. }
    120. }
    121. // 左眼球
    122. .eyeball-left {
    123. background: $eyeballLeftBg;
    124. }
    125. // 右眼球
    126. .eyeball-right {
    127. background: $eyeballRightBg;
    128. }
    129. }
    130. .eye-left {
    131. // 左眼
    132. left: 10%;
    133. background: $eyeLeftBg;
    134. }
    135. .eye-right {
    136. // 右眼
    137. left: 85%;
    138. background: $eyeRightBg;
    139. }
    140. // 鼻子部分
    141. .nose-box {
    142. top: 50%;
    143. display: flex;
    144. justify-content: space-between;
    145. width: 28%;
    146. height: auto;
    147. margin-bottom: 20rpx;
    148. .nostril-tip {
    149. width: 16rpx;
    150. height: 24rpx;
    151. background: $nostrilBg;
    152. box-shadow: $nostrilBoxShadow;
    153. border-radius: 40rpx;
    154. }
    155. }
    156. // 嘴巴部分
    157. .mouth-box {
    158. display: flex;
    159. align-items: center;
    160. justify-content: center;
    161. position: relative;
    162. width: 100%;
    163. height: 0%;
    164. overflow: hidden;
    165. background-color: $mouthBg;
    166. animation: mouth-animate 1.75s infinite;
    167. border: $mouthBorder;
    168. box-shadow: $mouthBoxShadow;
    169. box-sizing: border-box;
    170. border-radius: 200rpx;
    171. // 上牙齿
    172. .upper-teeth {
    173. position: absolute;
    174. top: -60rpx;
    175. width: 340rpx;
    176. height: 60rpx;
    177. background-color: $upperBg;
    178. animation: upper-teeth-animate 1.75s infinite;
    179. border-bottom-left-radius: 20rpx;
    180. border-bottom-right-radius: 20rpx;
    181. z-index: 100;
    182. }
    183. // 下牙齿
    184. .lower-teeth {
    185. position: absolute;
    186. bottom: 0;
    187. width: 200rpx;
    188. height: 60rpx;
    189. background-color: $upperBg;
    190. animation: lower-teeth-animate 1.75s infinite;
    191. border-top-left-radius: 20rpx;
    192. border-top-right-radius: 20rpx;
    193. z-index: 100;
    194. }
    195. }
    196. .mouth-box::before {
    197. content: "";
    198. position: absolute;
    199. width: 300rpx;
    200. height: 160rpx;
    201. background-color: $mouthBeforeBg;
    202. border-radius: 200rpx;
    203. }
    204. .mouth-box::after {
    205. content: "";
    206. position: absolute;
    207. bottom: -160rpx;
    208. width: 320rpx;
    209. height: 160rpx;
    210. background-color: $mouthAfterBg;
    211. border-top-left-radius: 50%;
    212. border-top-right-radius: 50%;
    213. animation: mouth-after-animate 1.75s infinite;
    214. }
    215. // 动画部分
    216. @keyframes upper-teeth-animate {
    217. 0%,
    218. 10%,
    219. 80%,
    220. 100% {
    221. top: -60rpx;
    222. }
    223. 20% {
    224. top: 0rpx;
    225. }
    226. 30% {
    227. top: -40rpx;
    228. }
    229. 40% {
    230. top: -0rpx;
    231. }
    232. 50% {
    233. top: -50rpx;
    234. }
    235. 70% {
    236. top: 0rpx;
    237. }
    238. }
    239. @keyframes lower-teeth-animate {
    240. 0%,
    241. 10%,
    242. 80%,
    243. 100% {
    244. bottom: -60rpx;
    245. }
    246. 20% {
    247. bottom: 0rpx;
    248. }
    249. 30% {
    250. bottom: -40rpx;
    251. }
    252. 40% {
    253. bottom: -0rpx;
    254. }
    255. 50% {
    256. bottom: -50rpx;
    257. }
    258. 70% {
    259. bottom: 0rpx;
    260. }
    261. }
    262. @keyframes mouth-animate {
    263. 0%,
    264. 10%,
    265. 100% {
    266. width: 100%;
    267. height: 0%;
    268. }
    269. 15% {
    270. width: 90%;
    271. height: 30%;
    272. }
    273. 20% {
    274. width: 50%;
    275. height: 70%;
    276. }
    277. 25% {
    278. width: 70%;
    279. height: 70%;
    280. }
    281. 30% {
    282. width: 80%;
    283. height: 60%;
    284. }
    285. 35% {
    286. width: 60%;
    287. height: 70%;
    288. }
    289. 40% {
    290. width: 55%;
    291. height: 75%;
    292. }
    293. 45% {
    294. width: 50%;
    295. height: 90%;
    296. }
    297. 50% {
    298. width: 40%;
    299. height: 70%;
    300. }
    301. 55% {
    302. width: 70%;
    303. height: 95%;
    304. }
    305. 60% {
    306. width: 40%;
    307. height: 50%;
    308. }
    309. 65% {
    310. width: 100%;
    311. height: 60%;
    312. }
    313. 70% {
    314. width: 100%;
    315. height: 70%;
    316. }
    317. 75% {
    318. width: 90%;
    319. height: 70%;
    320. }
    321. 80% {
    322. width: 50%;
    323. height: 70%;
    324. }
    325. 85% {
    326. width: 90%;
    327. height: 50%;
    328. }
    329. 85% {
    330. width: 40%;
    331. height: 70%;
    332. }
    333. 90% {
    334. width: 90%;
    335. height: 30%;
    336. }
    337. 95% {
    338. width: 100%;
    339. height: 10%;
    340. }
    341. }
    342. @keyframes mouth-after-animate {
    343. 0%,
    344. 20%,
    345. 100% {
    346. bottom: -160rpx;
    347. }
    348. 30%,
    349. 90% {
    350. bottom: -80rpx;
    351. }
    352. 40% {
    353. bottom: -90rpx;
    354. }
    355. 50% {
    356. bottom: -100rpx;
    357. }
    358. 70% {
    359. bottom: -160rpx;
    360. }
    361. 90% {
    362. bottom: -80rpx;
    363. }
    364. }
    365. }

    完整源码

    1. <template>
    2. <view>
    3. <view class="container">
    4. <view class="external-shape">
    5. <view class="face-box">
    6. <view class="eye-box eye-left">
    7. <view class="eyeball-box eyeball-left">
    8. <span class="pupil-box"><span class="pupil-reflex">span>span>
    9. view>
    10. view>
    11. <view class="eye-box eye-right">
    12. <view class="eyeball-box eyeball-right">
    13. <span class="pupil-box"><span class="pupil-reflex">span>span>
    14. view>
    15. view>
    16. <view class="nose-box">
    17. <view class="nostril-tip">view>
    18. <view class="nostril-tip">view>
    19. view>
    20. <view class="mouth-box">
    21. <view class="upper-teeth">view>
    22. <view class="lower-teeth">view>
    23. view>
    24. view>
    25. view>
    26. view>
    27. view>
    28. template>
    29. <script>
    30. export default {
    31. data() {
    32. return {};
    33. },
    34. onLoad() {},
    35. methods: {}
    36. };
    37. script>
    38. <style lang="scss" scoped>
    39. .container {
    40. $overall: #0097d9; // 整体背景
    41. // 眼睛部分
    42. $eyeBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 眼睛部分的阴影
    43. $eyeLeftBg: linear-gradient(to bottom, #fdfdfd, #c3efea); // 左眼背景
    44. $eyeRightBg: linear-gradient(to bottom, #fdfdfd, #e6d6f6); // 右眼背景
    45. // 眼球部分
    46. $eyeballLeftBg: linear-gradient(135deg, rgba(188, 248, 177, 0.7), #2fa38c 75%); // 左眼球背景
    47. $eyeballRightBg: linear-gradient(135deg, #f1a183, #8535cd); // 右眼球背景
    48. // 瞳孔部分
    49. $pupilBg: #2c2f32; // 瞳孔部分的背景
    50. $pupilBoxShadow: 0rpx 0rpx 20rpx rgba(0, 0, 0, 0.2); // 瞳孔部分的阴影
    51. $pupilReflexBg: #ebebeb; // 瞳孔反射部分的背景
    52. $pupilReflexBoxShadow: 20rpx 20rpx 20rpx rgba(255, 255, 255, 0.2); // 瞳孔反射部分的阴影
    53. // 鼻子部分
    54. $nostrilBg: rgba(0, 0, 0, 0.5); // 鼻孔的背景
    55. $nostrilBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.1); // 鼻孔的阴影
    56. // 嘴巴部分
    57. $mouthBg: #810332; // 嘴巴背景
    58. $mouthBorder: 50rpx solid #ffc333; // 嘴巴的边框
    59. $mouthBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 嘴巴的阴影
    60. $mouthBeforeBg: #400018; // 嘴巴内背景(在元素的内容前面插入新内容)[伪元素]
    61. $mouthAfterBg: #dc1b50; // 嘴巴内舌头(在元素的内容之后插入新内容)[伪元素]
    62. $upperBg: #fff; // 牙齿背景
    63. position: fixed;
    64. top: -70rpx;
    65. right: -150rpx;
    66. transform: scale(0.24);
    67. -o-transform: scale(0.24); // Opera
    68. -ms-transform: scale(0.24); // IE 9
    69. -moz-transform: scale(0.24); // Firefox
    70. -webkit-transform: scale(0.24); // Safari 和 Chrome
    71. z-index: 9999;
    72. .external-shape {
    73. display: flex;
    74. justify-content: center;
    75. position: relative;
    76. width: 340rpx;
    77. height: 800rpx;
    78. border-top-left-radius: 400rpx;
    79. border-top-right-radius: 400rpx;
    80. background-color: $overall;
    81. box-shadow: 40rpx 40rpx 120rpx $overall;
    82. transform: rotate(-50deg);
    83. -o-transform: rotate(-50deg); // Opera
    84. -ms-transform: rotate(-50deg); // IE 9
    85. -moz-transform: rotate(-50deg); // Firefox
    86. -webkit-transform: rotate(-50deg); // Safari 和 Chrome
    87. }
    88. .face-box {
    89. display: flex;
    90. align-items: center;
    91. justify-content: center;
    92. flex-direction: column;
    93. position: absolute;
    94. top: 14%;
    95. width: 75%;
    96. height: 320rpx;
    97. }
    98. // 眼睛部分
    99. .eye-box {
    100. position: absolute;
    101. top: -10%;
    102. width: 130rpx;
    103. height: 130rpx;
    104. margin: 6rpx;
    105. background: #fff;
    106. transform: translateX(-50%);
    107. -o-transform: translateX(-50%); // Opera
    108. -ms-transform: translateX(-50%); // IE 9
    109. -moz-transform: translateX(-50%); // Firefox
    110. -webkit-transform: translateX(-50%); // Safari 和 Chrome
    111. box-shadow: $eyeBoxShadow;
    112. border-radius: 100%;
    113. // 眼球部分
    114. .eyeball-box {
    115. position: absolute;
    116. top: 25%;
    117. left: 50%;
    118. width: 55%;
    119. height: 55%;
    120. transform: translate(-50%);
    121. -o-transform: translate(-50%); // Opera
    122. -ms-transform: translate(-50%); // IE 9
    123. -moz-transform: translate(-50%); // Firefox
    124. -webkit-transform: translate(-50%); // Safari 和 Chrome
    125. border-radius: 100%;
    126. z-index: 100;
    127. // 瞳孔部分
    128. .pupil-box {
    129. position: absolute;
    130. top: 25%;
    131. left: 50%;
    132. width: 55%;
    133. height: 55%;
    134. background: $pupilBg;
    135. transform: translate(-50%);
    136. -o-transform: translate(-50%); // Opera
    137. -ms-transform: translate(-50%); // IE 9
    138. -moz-transform: translate(-50%); // Firefox
    139. -webkit-transform: translate(-50%); // Safari 和 Chrome
    140. box-shadow: $pupilBoxShadow;
    141. border-radius: 100%;
    142. .pupil-reflex {
    143. position: absolute;
    144. top: 10%;
    145. left: 25%;
    146. width: 14rpx;
    147. height: 14rpx;
    148. background: $pupilReflexBg;
    149. transform: translate(-50%);
    150. -o-transform: translate(-50%); // Opera
    151. -ms-transform: translate(-50%); // IE 9
    152. -moz-transform: translate(-50%); // Firefox
    153. -webkit-transform: translate(-50%); // Safari 和 Chrome
    154. box-shadow: $pupilReflexBoxShadow;
    155. border-radius: 100%;
    156. }
    157. }
    158. }
    159. // 左眼球
    160. .eyeball-left {
    161. background: $eyeballLeftBg;
    162. }
    163. // 右眼球
    164. .eyeball-right {
    165. background: $eyeballRightBg;
    166. }
    167. }
    168. .eye-left {
    169. // 左眼
    170. left: 10%;
    171. background: $eyeLeftBg;
    172. }
    173. .eye-right {
    174. // 右眼
    175. left: 85%;
    176. background: $eyeRightBg;
    177. }
    178. // 鼻子部分
    179. .nose-box {
    180. top: 50%;
    181. display: flex;
    182. justify-content: space-between;
    183. width: 28%;
    184. height: auto;
    185. margin-bottom: 20rpx;
    186. .nostril-tip {
    187. width: 16rpx;
    188. height: 24rpx;
    189. background: $nostrilBg;
    190. box-shadow: $nostrilBoxShadow;
    191. border-radius: 40rpx;
    192. }
    193. }
    194. // 嘴巴部分
    195. .mouth-box {
    196. display: flex;
    197. align-items: center;
    198. justify-content: center;
    199. position: relative;
    200. width: 100%;
    201. height: 0%;
    202. overflow: hidden;
    203. background-color: $mouthBg;
    204. animation: mouth-animate 1.75s infinite;
    205. border: $mouthBorder;
    206. box-shadow: $mouthBoxShadow;
    207. box-sizing: border-box;
    208. border-radius: 200rpx;
    209. // 上牙齿
    210. .upper-teeth {
    211. position: absolute;
    212. top: -60rpx;
    213. width: 340rpx;
    214. height: 60rpx;
    215. background-color: $upperBg;
    216. animation: upper-teeth-animate 1.75s infinite;
    217. border-bottom-left-radius: 20rpx;
    218. border-bottom-right-radius: 20rpx;
    219. z-index: 100;
    220. }
    221. // 下牙齿
    222. .lower-teeth {
    223. position: absolute;
    224. bottom: 0;
    225. width: 200rpx;
    226. height: 60rpx;
    227. background-color: $upperBg;
    228. animation: lower-teeth-animate 1.75s infinite;
    229. border-top-left-radius: 20rpx;
    230. border-top-right-radius: 20rpx;
    231. z-index: 100;
    232. }
    233. }
    234. .mouth-box::before {
    235. content: "";
    236. position: absolute;
    237. width: 300rpx;
    238. height: 160rpx;
    239. background-color: $mouthBeforeBg;
    240. border-radius: 200rpx;
    241. }
    242. .mouth-box::after {
    243. content: "";
    244. position: absolute;
    245. bottom: -160rpx;
    246. width: 320rpx;
    247. height: 160rpx;
    248. background-color: $mouthAfterBg;
    249. border-top-left-radius: 50%;
    250. border-top-right-radius: 50%;
    251. animation: mouth-after-animate 1.75s infinite;
    252. }
    253. // 动画部分
    254. @keyframes upper-teeth-animate {
    255. 0%,
    256. 10%,
    257. 80%,
    258. 100% {
    259. top: -60rpx;
    260. }
    261. 20% {
    262. top: 0rpx;
    263. }
    264. 30% {
    265. top: -40rpx;
    266. }
    267. 40% {
    268. top: -0rpx;
    269. }
    270. 50% {
    271. top: -50rpx;
    272. }
    273. 70% {
    274. top: 0rpx;
    275. }
    276. }
    277. @keyframes lower-teeth-animate {
    278. 0%,
    279. 10%,
    280. 80%,
    281. 100% {
    282. bottom: -60rpx;
    283. }
    284. 20% {
    285. bottom: 0rpx;
    286. }
    287. 30% {
    288. bottom: -40rpx;
    289. }
    290. 40% {
    291. bottom: -0rpx;
    292. }
    293. 50% {
    294. bottom: -50rpx;
    295. }
    296. 70% {
    297. bottom: 0rpx;
    298. }
    299. }
    300. @keyframes mouth-animate {
    301. 0%,
    302. 10%,
    303. 100% {
    304. width: 100%;
    305. height: 0%;
    306. }
    307. 15% {
    308. width: 90%;
    309. height: 30%;
    310. }
    311. 20% {
    312. width: 50%;
    313. height: 70%;
    314. }
    315. 25% {
    316. width: 70%;
    317. height: 70%;
    318. }
    319. 30% {
    320. width: 80%;
    321. height: 60%;
    322. }
    323. 35% {
    324. width: 60%;
    325. height: 70%;
    326. }
    327. 40% {
    328. width: 55%;
    329. height: 75%;
    330. }
    331. 45% {
    332. width: 50%;
    333. height: 90%;
    334. }
    335. 50% {
    336. width: 40%;
    337. height: 70%;
    338. }
    339. 55% {
    340. width: 70%;
    341. height: 95%;
    342. }
    343. 60% {
    344. width: 40%;
    345. height: 50%;
    346. }
    347. 65% {
    348. width: 100%;
    349. height: 60%;
    350. }
    351. 70% {
    352. width: 100%;
    353. height: 70%;
    354. }
    355. 75% {
    356. width: 90%;
    357. height: 70%;
    358. }
    359. 80% {
    360. width: 50%;
    361. height: 70%;
    362. }
    363. 85% {
    364. width: 90%;
    365. height: 50%;
    366. }
    367. 85% {
    368. width: 40%;
    369. height: 70%;
    370. }
    371. 90% {
    372. width: 90%;
    373. height: 30%;
    374. }
    375. 95% {
    376. width: 100%;
    377. height: 10%;
    378. }
    379. }
    380. @keyframes mouth-after-animate {
    381. 0%,
    382. 20%,
    383. 100% {
    384. bottom: -160rpx;
    385. }
    386. 30%,
    387. 90% {
    388. bottom: -80rpx;
    389. }
    390. 40% {
    391. bottom: -90rpx;
    392. }
    393. 50% {
    394. bottom: -100rpx;
    395. }
    396. 70% {
    397. bottom: -160rpx;
    398. }
    399. 90% {
    400. bottom: -80rpx;
    401. }
    402. }
    403. }
    404. style>

    参考:【会说话的小鸟】给你的微信小程序加一个宠物吧

  • 相关阅读:
    Java中级——lambda表达式
    通过人才测评系统,对程序员岗位进行招聘测评
    注意力机制及代码实现
    环境配置 | 图文VS2022配置OpenCV,Dlib
    ClickHouse(10)ClickHouse合并树MergeTree家族表引擎之ReplacingMergeTree详细解析
    C 语言是“最环保”的编程语言
    2.5 贝叶斯分类器
    P1972 [SDOI2009] HH的项链
    sed的介绍及应用
    HttpClient遭遇Connection Reset异常分析(浅析部分源码)
  • 原文地址:https://blog.csdn.net/AdminGuan/article/details/133985805