分享一下评论头像呼吸灯CSS

Feng
7月3日发布

图片[1] - 分享一下评论头像呼吸灯CSS - Feng的小屋

这段代码我也是网上找的,方便记录,也为了分享所以解刨记录一下

简单介绍

目标元素选择器

这段代码的开头部分,通过 CSS 选择器精准锁定了三类图像元素img.avatar-img.avatar-lg选择同时拥有avatar-img和avatar-lg两个类名的<img>元素。这种组合选择器能够精确匹配特定场景下的图像,比如网站用户头像中特定尺寸和样式的大头像。​

img.avatar.lazyloaded针对同时具有avatarlazyloaded类的图像。lazyloaded类通常用于实现图片的懒加载功能,该选择器确保懒加载完成后的头像元素也能应用相应样式。​

img.avatar只要图像元素拥有avatar类,都会被选中。这是一个更宽泛的选择,作为前两个选择器的补充,覆盖了所有带有avatar类的图像。​

通过这种细致的选择器组合,开发者可以灵活地控制不同条件下的图像样式,避免样式的误应用,提升代码的可控性和维护性。

基础样式设定

animation light 4s ease-in-out infinite这行代码应用了名为light的动画,动画时长为 4 秒,以ease-in-out的缓动函数运行,并且会无限循环播放。通过这个动画,图像将产生不断变化的发光效果。​

transition0.5s设置了 0.5 秒的过渡效果。这意味着当图像的样式发生改变时(比如后续的悬停状态),样式变化不会瞬间完成,而是会在 0.5 秒内平滑过渡,让用户的视觉体验更加流畅自然。

悬停效果

接下来的代码块定义了图像在悬停状态下的样式变化:

img.avatar-img.avatar-lg:hover,​
img.avatar.lazyloaded:hover,​
img.avatar:hover {​
    transform: scale(1.15) rotate(720deg); /* 悬停时放大15%并旋转两周(720度) */​
}

hover伪类是 CSS 中用于检测鼠标指针是否悬停在元素上的重要特性。当用户将鼠标悬停在之前选中的图像上时,transform属性发挥作用,使图像放大 15% 并旋转 720 度(即两周)。结合之前设置的过渡效果,这个变化过程会显得非常平滑,给用户带来惊喜的交互体验,增强用户与网页之间的互动感。

动画关键帧

最后,@keyframes规则定义了名为light的动画关键帧,这是实现图像发光效果的核心部分:

@keyframes light {​
    0% { box-shadow: 0 0 4px #f00; }      /* 起始状态:红色小光晕 */​
    25% { box-shadow: 0 0 16px #0f0; }    /* 25%进度:绿色大光晕 */​
    50% { box-shadow: 0 0 4px #00f; }    /* 50%进度:蓝色小光晕 */​
    75% { box-shadow: 0 0 16px #0f0; }    /* 75%进度:绿色大光晕 */​
    100% { box-shadow: 0 0 4px #f00; }    /* 结束状态:回到红色小光晕 */​
}

@keyframes规则允许开发者定义动画在不同阶段的样式变化。在light动画中:​
动画开始(0%)时,图像周围产生一个红色的小光晕(box-shadow: 0 0 4px #f00;)。​
当动画进行到 25% 时,光晕变为绿色且尺寸变大(box-shadow: 0 0 16px #0f0;)。​
50% 时,光晕切换为蓝色小光晕。​
75% 时,再次出现绿色大光晕。​
动画结束(100%)时,回到初始的红色小光晕状态。由于设置了infinite无限循环,这个过程会一直持续,使图像始终散发着光晕。

完整代码展示

/* 目标元素选择器组:指定样式仅应用于以下三类图像元素 */
img.avatar-img.avatar-lg,    /* 同时拥有avatar-img和avatar-lg类的图像 */
img.avatar.lazyloaded,      /* 同时拥有avatar和lazyloaded类的图像 */
img.avatar {                /* 拥有avatar类的图像 */
   /* 使图像呈现圆形效果 */
    animation: light 4s ease-in-out infinite; /* 应用4秒循环的发光动画 */
    transition: 0.5s;       /* 设置0.5秒的过渡效果,用于平滑响应悬停动作 */
}

/* 目标元素的悬停状态样式 */
img.avatar-img.avatar-lg:hover,
img.avatar.lazyloaded:hover,
img.avatar:hover {
    transform: scale(1.15) rotate(720deg); /* 悬停时放大15%并旋转两周(720度) */
}

/**
 * 发光动画定义
 * 实现图像周围的光晕效果,在红、绿、蓝之间循环变化
 */
@keyframes light {
    0% { box-shadow: 0 0 4px #f00; }      /* 起始状态:红色小光晕 */
    25% { box-shadow: 0 0 16px #0f0; }    /* 25%进度:绿色大光晕 */
    50% { box-shadow: 0 0 4px #00f; }     /* 50%进度:蓝色小光晕 */
    75% { box-shadow: 0 0 16px #0f0; }    /* 75%进度:绿色大光晕 */
    100% { box-shadow: 0 0 4px #f00; }    /* 结束状态:回到红色小光晕 */
}
© 版权声明
THE END
喜欢就支持一下吧
点赞 3 分享 赞赏
评论 共2条
OωO
取消
  1. 头像
     · 
    中国移动
    回复

    学会了,去看我网站

    1. 头像
      Feng 作者
       · 
      中国广东省中山市电信
      回复

      @lovau

      让我看看

SSL