HTML+CSS+JS:微光波浪文本动画

文章介绍了如何通过CSS动画和渐变在HTML元素上实现文字闪烁的波浪动态效果,以提升网页的视觉吸引力和用户体验。
摘要由CSDN通过智能技术生成

效果演示

29-微光波浪文本动画.gif

实现了一个文字闪烁效果,通过使用CSS动画和渐变来创建波浪状的动态效果。具体来说,文字会在不同时间点进行变换,包括颜色、旋转、缩放和透明度等属性的变化,从而呈现出类似波浪的动态效果。这种效果通常用于吸引用户的注意力或为页面增添一些动感和视觉吸引力。

Code

<div id="shimmerWave">Generating summary...</div>
/* 设置页面基本样式 */
body,
html {
    height: 100%; /* 设置页面高度为100% */
    margin: 0; /* 设置页面外边距为0 */
    display: flex; /* 使用flex布局 */
    justify-content: center; /* 水平居中 */
    align-items: center; /* 垂直居中 */
    background-color: #000; /* 设置背景颜色为黑色 */
    -webkit-text-size-adjust: 100%; /* WebKit浏览器文本大小调整为100% */
    -moz-text-size-adjust: 100%; /* Firefox浏览器文本大小调整为100% */
    text-size-adjust: 100%; /* 文本大小调整为100% */
    -webkit-font-smoothing: antialiased; /* WebKit浏览器字体平滑处理 */
    text-rendering: optimizelegibility; /* 优化文本渲染 */
    -webkit-text-size-adjust: none; /* 禁止WebKit浏览器文本大小调整 */
    -moz-text-size-adjust: none; /* 禁止Firefox浏览器文本大小调整 */
    text-size-adjust: none; /* 禁止文本大小调整 */
}

/* 设置#shimmerWave元素样式 */
#shimmerWave {
    color: #46afc8; /* 设置文字颜色 */
    font-size: 40px; /* 设置文字大小 */
    font-family: "Open-Sans", sans-serif; /* 设置字体 */
    font-weight: 600; /* 设置字体粗细 */
    perspective: 80px; /* 设置透视效果 */
    transform-style: preserve-3d; /* 保持3D变换效果 */
}

/* 设置#shimmerWave内span元素样式 */
#shimmerWave span {
    position: relative; /* 设置相对定位 */
    transition: all 0.3s ease; /* 设置过渡效果 */
    display: inline-block; /* 行内块元素显示 */
    -webkit-animation: wave 2.4s ease infinite; /* 设置WebKit动画 */
    animation: wave 2.4s ease infinite; /* 设置动画 */
    letter-spacing: 0.01em; /* 设置字间距 */
    transform-origin: 100% 50%; /* 设置变换原点 */
    transform-style: preserve-3d; /* 保持3D变换效果 */
}

/* 为每个span元素设置不同的动画延迟时间 */
#shimmerWave span:nth-child(1) {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}
/* 依此类推 */
...

/* 定义WebKit动画效果wave */
@-webkit-keyframes wave {
    /* 不同关键帧的样式变化 */
}

/* 定义通用动画效果wave */
@keyframes wave {
    /* 不同关键帧的样式变化 */
}
const target = document.getElementById('shimmerWave');
function splitTextToSpans(targetElement) {
  if (targetElement) {
    const text = targetElement.textContent;
    targetElement.innerHTML = '';
    for (let character of text) {
      const span = document.createElement('span');
      if (character === ' ') {
        span.innerHTML = '&nbsp;';
      } else {
        span.textContent = character;
      }
      targetElement.appendChild(span);
    }
  }
}
splitTextToSpans(target);
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值