花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 157|回复: 104

conic+mask实现转场效果

[复制链接]
  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2025-8-11 17:53 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    实现思路:

    使用元素和伪元素交换背景图像达成切换图像的设计:开始时头一个图像在元素背景上呈现,伪元素什么都不加载,从第一次切换开始,伪元素事先加载一个新图像,同时使用 conic-gradient 对其进行遮罩,并运行改变遮罩色标终止角度的动画使得伪元素上的背景渐次绕圈呈现,动画绕圈的起始角度随机,动画完成后将伪元素上的背景图象移交给主元素背景,如此往复运行。

    为让上述思路变为现实,需要设计几个CSS变量:其一,--start,锥形渐变(基于圆的)起始角度,它将控制(在圆周上)放开遮罩的开始点,因为锥形渐变是绕中心点做顺时针圆周渐变的;其二,--bg1,存储主元素的背景图像数据;其三,--bg2,存储伪元素的背景图象信息。这些变量的控制权交给JS:每一次转场图像动画的触发和实施过程都会动态地更新这些变量值。下面是具体代码,可在线运行:

    <style> #ma { position: relative; margin: 30px auto; width: 400px; height: 400px; background: var(--bg1); /* 背景变量由JS控制 */ border-radius: 50%; } #ma::after { position: absolute; content: ''; inset: 0; background: var(--bg2); /* 背景变量由JS控制 */ border-radius: 50%; /* 锥形渐变转场 :开始角度、色标变量通过JS控制 */ mask: conic-gradient(from var(--start), transparent var(--deg) , var(--deg), red); } </style> <div id="ma">点击转场</div> <script> // deg : 遮罩色标开始值,step : 色标值改变系数, // currentBg : 当前背景,raf : requestAnimationFrame计数器 let deg = 360, step = 5, currentBg, raf; // 设置随机背景色+随机遮罩角度 const setRadBg = (elm, val, bg = null) => { // 如果调用者不提供 bg 参数则使用随机背景色 if (!bg) bg = `#${Math.random().toString(16).substring(2, 8)}`; elm.style.setProperty(val, bg); // 设置 elm 元素的 val 背景色 elm.style.setProperty('--start', Math.random() * 360 + 'deg'); // 设置随机遮罩起始角度 return bg; // 返回 bg 值 }; /* 遮罩动画 */ const animate = () => { if (deg < 0) { // 如果色标角度小于 0 cancelAnimationFrame(raf); // 取消 raf 计数器 deg = 360; // 色标值回到初始值 setRadBg(ma, '--bg1', currentBg); // 调用 setRadBg 函数 : 当前颜色值做主元素背景色 } else { // 否则 deg -= step; // 色标值递减 ma.style.setProperty('--deg', deg + 'deg'); // 更新元素的色标值 raf = requestAnimationFrame(animate); // 更新并存储 raf 计数器 } }; currentBg = setRadBg(ma, '--bg1'); // 首次运行 setRadBg 函数 : 初始化界面并存储当前背景 // 元素点击事件 ma.onclick = () => { currentBg = setRadBg(ma, '--bg2'); // 运行 setRadBg 函数并存储当前背景 animate(); // 运行转场动画 }; </script>
    【附】conic-gradient 锥形渐变简洁:

    锥形渐变默认以元素的圆心作为中心点,参与渐变的颜色围绕圆心从 0 度(指向正上方)开始、按顺时针做渐变,开始颜色和结束颜色在元素的上半部分的中央存在明显的硬线衔接痕迹。下面例子是元素背景图像由天蓝色和红色参与渐变,查看预览效果可以更好理解默认设置下的锥形渐变效果:

    <style> .ma { margin: 30px; width: 200px; height: 200px; background: conic-gradient(skyblue, red); /* 锥形渐变背景 */ } </style> <div class="ma"></div>

    再提供几个其它例子,这些例子展示简单的个性化锥形渐变设置:

    <style> .ma { margin: 30px 0 30px 20px; width: 200px; height: 200px; display: inline-block; } .ma:nth-of-type(1) { /* 渐变从90度开始 */ background: conic-gradient(from 90deg, red, green, blue); } .ma:nth-of-type(2) { /* 渐变从90的开始,中心点不在圆心 */ background: conic-gradient(from 90deg at 20% 60% , red, green, blue); } .ma:nth-of-type(3) { /* 色标边界硬线衔接 :除百分比外还可以用 deg 做角度单位 */ background: conic-gradient(from 90deg, red 33.3%, green 33.3%, green 66.6%, blue 66.6%, blue); } .ma:nth-of-type(4) { /* 饼状图 */ background: conic-gradient(red 120deg, orange 120deg, orange 240deg, yellow 240deg, yellow); border-radius: 50%; } .ma:nth-of-type(5) { /* 非标准的七彩虹色盘效果 */ background: conic-gradient(red,yellow,green,cyan,blue,magenta,red); border-radius: 50%; } .ma:nth-of-type(6) { /* 重复性锥形渐变 */ background: repeating-conic-gradient(hsla(0, 0%, 100%, 0.2) 0deg 15deg, hsla(0, 0%, 100%, 0) 0deg 30deg) tan; border-radius: 50%; } </style> <div class="ma"></div> <div class="ma"></div> <div class="ma"></div> <div class="ma"></div> <div class="ma"></div> <div class="ma"></div>

    评分

    参与人数 2威望 +80 金钱 +160 经验 +80 收起 理由
    红影 + 50 + 100 + 50 赞一个!
    花飞飞 + 30 + 60 + 30 很给力!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-11 19:03 | 显示全部楼层
    来看看这个新的教程。。
    之前说除了线性遮罩应该还有别的形式,这个锥形的转场也很好看。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-11 19:15 | 显示全部楼层
    第一个预览里的颜色是随机背景,可以无限转下去的感觉。可以点好久。。。
    第三个展示这么多种样式的锥形渐变,个个都漂亮。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-11 19:18 | 显示全部楼层
    花飞飞 发表于 2025-8-11 19:15
    第一个预览里的颜色是随机背景,可以无限转下去的感觉。可以点好久。。。
    第三个展示这么多种样 ...

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-11 19:18 | 显示全部楼层
    花飞飞 发表于 2025-8-11 19:03
    来看看这个新的教程。。
    之前说除了线性遮罩应该还有别的形式,这个锥形的转场也很好看。。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-11 19:45 | 显示全部楼层

    掐个小粉猪。。。你今天开心不呀。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-11 19:46 | 显示全部楼层

    太漂亮了,期待看到背景是图片的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-11 20:47 | 显示全部楼层
    花飞飞 发表于 2025-8-11 19:46
    太漂亮了,期待看到背景是图片的

    自己弄去
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-11 20:47 | 显示全部楼层
    花飞飞 发表于 2025-8-11 19:45
    掐个小粉猪。。。你今天开心不呀。

    我天天开森
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-12 08:20 | 显示全部楼层

    好哒好哒,碰一鼻子灰,哭唧唧走了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-12 08:21 | 显示全部楼层

    那就开森着你的开森
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-8-12 09:52 | 显示全部楼层
    后面那个个性化锥形渐变的例子太好了,尤其那个“渐变从90的开始,中心点不在圆心”,竟然还能设置起始角度的同时设置圆心点在哪,这个还不知道,或者是之前讲过我忘记了
    七彩虹色盘的记得,“重复性锥形渐变”也好漂亮啊
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-8-12 09:54 | 显示全部楼层
    任意角度的动态锥形渐变转场也好漂亮,这个太好了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-12 19:09 | 显示全部楼层
    红影 发表于 2025-8-12 09:54
    任意角度的动态锥形渐变转场也好漂亮,这个太好了

    谢好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-12 19:10 | 显示全部楼层
    红影 发表于 2025-8-12 09:52
    后面那个个性化锥形渐变的例子太好了,尤其那个“渐变从90的开始,中心点不在圆心”,竟然还能设置起始角度 ...

    之前介绍的基本是一基本知识为主
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-12 19:10 | 显示全部楼层
    花飞飞 发表于 2025-8-12 08:21
    那就开森着你的开森

    一起开
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-12 19:10 | 显示全部楼层
    花飞飞 发表于 2025-8-12 08:20
    好哒好哒,碰一鼻子灰,哭唧唧走了

    像小计一样
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-12 20:23 | 显示全部楼层

    开就开,虽怕虽
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-8-12 20:25 | 显示全部楼层

    你没事挠挠去,可好玩呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-8-12 20:57 | 显示全部楼层

    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-11-30 15:46 , Processed in 0.093468 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表