CSS实现的扫光效果组件


theme: lilsnake

图片和内容如有侵权,及时与我联系~

详细内容与注释:

CSS实现的扫光效果组件

代码

技术栈与框架

Vue3

CSS

扫光效果的原理

扫光效果的原理就是从左到右无限循环的一个位移动画

实现方式

适配文字扫光效果的css

css 复制代码
.shark-box { /* 文字样式 */
    font-size: 60px; 
    font-weight: normal; 
    /* 扫光样式-文字 */ 
    -webkit-text-fill-color: transparent; 
    background: linear-gradient( 45deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 60% ) -100% / 50% no-repeat currentColor; 
    -webkit-background-clip: text; 
    animation: shark-box 2s infinite; } 
/* 文字 */ 
@keyframes shark-box { 
    from { background-position: -100%; } 
    to { background-position: 200%; } 
}
效果图

适配图片扫光效果的css

css 复制代码
/* 图片扫光样式 */ 
.card { 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    img { 
    display: block; border-radius: 8px; 
    } 
} 
/* 伪元素实现图片扫光 */ 
.shark-img { 
    //定位图片,超出隐藏 
    position: relative; 
    overflow: hidden; 
    img { 
        object-fit: cover; 
    } 
    &::after { 
        content: ""; 
        position: absolute; 
        inset: -20%; 
        background: linear-gradient( 45deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 60% ); 
        animation: shark-img 2s infinite; transform: translateX(-100%); 
    } 
} 
/* 图片 */ 
@keyframes shark-img {
    to { transform: translateX(100%); } 
}
效果图

针对不规则样式

html 复制代码
 <!-- 针对不规则图形,增加 -webkit-mask 配置 -->
    <div
      class="shark-img card"
      v-else-if="props.src"
      :style="
        props.src.includes('png')
          ? {
              mask: `url(${props.src}) no-repeat center / cover`,
              '-webkit-mask': `url(${props.src}) no-repeat center / cover`,
            }
          : {}
      "
    >
      <img :src="props.src" alt="未找到图片" />
    </div>
效果图

组件代码

https://code.juejin.cn/pen/7394752941250314250

相关推荐
一条上岸小咸鱼6 分钟前
Kotlin 基本数据类型(五):Array
android·前端·kotlin
大明889 分钟前
用 mouseover/mouseout 事件代理模拟 mouseenter/mouseleave
前端·javascript
小杨梅君11 分钟前
vue3+vite中使用自定义element-plus主题配置
前端·element
一个专注api接口开发的小白16 分钟前
Python + 淘宝 API 开发:自动化采集商品数据的完整流程
前端·数据挖掘·api
林太白16 分钟前
Nuxt.js搭建一个官网如何简单
前端·javascript·后端
晴空雨17 分钟前
一个符号让 indexOf 判断更优雅!JavaScript 位运算的隐藏技巧
前端·javascript
摸着石头过河的石头17 分钟前
前端调试全攻略:从PC到移动端的一站式实战指南
前端·debug
小猪猪屁19 分钟前
🚀 用 Nuxt3 打造公司官网:一场从 0 到 1 的实战冒险
前端
傅里叶34 分钟前
Flutter在OrangePi 5 Plus上视频播放锁死问题
前端·flutter
古夕1 小时前
my-first-ai-web_问题记录03——NextJS 项目框架基础扫盲
前端·javascript·react.js