七月下旬更新速递丨 任务中心上线,福利加倍!技术干货持续放送

更新焦点: 重磅推出「任务中心」! 完成多样化任务,轻松赚取麦豆!技术分享、AI学习、实用素材持续上新,点击标题立即探索!

任务版块全新登场!多个任务等你完成,麦豆轻松拿,福利享不停!

>> 立即前往任务中心,开启你的成长之旅! <<

二、实战技巧分享

报表合计不用愁!全场景报表合计一键搞定指南》→从几个场景出发,带大家全方位了解如何在各类报表中实现合计。

数据轻松入库,高效分析即刻开启!》→详细介绍在 Smartbi 中将数据导入数据库的几种主要途径。

三、开发技能突破

第三方系统集成Smartbi资源→演示一些入门的前端集成示例,帮助快速了解如何进行前端集成。

AI每日一学

什么是训练集?什么是验证集?什么是测试集?》→ 讲解如何用三大数据集为AI打造"训练-调试-终测"的全流程闭环

Manus与其他AI智能体产品有什么区别?》→ AI界真·“实干家”Manus上线!告别“嘴炮”AI,围观智能体如何“动手”逆天改命!速戳

五、资源更新

浅色系质感背景图》→百搭质感背景,看见即呼吸,质感如微风。

六、直播上线

如何制作性能最佳的报表解锁性能最佳报表的实践技巧

麦粉社区
>
建议征集
>
帖子详情

关于组件变色类呼吸效果的研究

建议征集 发表于 2024-8-29 19:36
发表于 2024-8-29 19:36:02
本帖最后由 君茗 于 2024-8-30 09:20 编辑

之前看到过一种效果,类似下图,尝试在Smartbi中实现



采用方式:宏代码


概要原理:定时器循环修改组件样式;保证颜色以A->B->C->B->A进行循环


初步实现效果:



———————————————————————————————————————


思考:初步具有了呼吸效果。


    若想实现不间断的呼吸效果,需得到两个rgba的中间数据。


    应以步长的形式获得,这样能保证代码中try部分只写一个rgba值,然后通过步长来控制;同时阴影也可以通过此步长来控制


参考:【仪表盘】地图实现循环高亮效果 - Smartbi Insight V11帮助中心 -


          【仪表盘】根据占比设置柱图中柱子的颜色 - Smartbi Insight V11帮助中心 -


附相关代码(事件为onBeforeRender):


function main(page: IPage, portlet: IEChartsPortlet) {
    var options = portlet.getChartOptions();
    var series = options.series[0];
    var sint = 1;//此参数为变化依据,为不同值是更改不同的series样式
    var threshold = 1;//此为阈值变化依据,控制sint参数以正弦形式变化
    var interval = setInterval(function () {
        try {
            if (sint == 1) {
                series.lineStyle = {
                    "normal": {
                        "color": "rgba(30,144,255,1)",
                        "shadowColor": "rgba(30,144,255,1)",
                        "shadowBlur": 5
                    }
                }
            } else if(sint == 0.9) {
                series.lineStyle = {
                    "normal": {
                        "color": "rgba(30,144,255,0.9)",
                        "shadowColor": "rgba(30,144,255,0.9)",
                        "shadowBlur": 10
                    }
                }
            } else if(sint == 0.8) {
                series.lineStyle = {
                    "normal": {
                        "color": "rgba(30,144,255,0.8)",
                        "shadowColor": "rgba(30,144,255,0.8)",
                        "shadowBlur": 15
                    }
                }
            } else {
                series.lineStyle = {
                    "normal": {
                        "color": "rgba(30,144,255,0.7)",
                        "shadowColor": "rgba(30,144,255,0.7)",
                        "shadowBlur": 20
                    }
                }
            }   
        } catch (e) {
            console.error(e);
        } finally {
            portlet.setChartOptions(options);
            //让数据在阈值内以正弦形式变化
            if (sint == 1) {
                threshold = -threshold;
                sint = sint + 0.1 * threshold;
            } else if (sint <= 0.71) {
                threshold = -threshold;
                sint = sint + 0.1*threshold;
            } else {
                sint = sint + 0.1*threshold;
            }
        }
    } , 1000)
}

 

发表于 2024-9-4 08:55:59
若想实现不间断的呼吸效果,需得到两个rgba的中间数据。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1回帖数 0关注人数 8648浏览人数
最后回复于:2024-9-4 08:55
快速回复 返回顶部 返回列表