JavaScript is required

自定义线条选中样式

自定义 CSS 线条样式和动画

演示用于样式化被选中/选定线条的自定义 CSS 类,具有多个预定义样式和动画。

自定义 CSS 线条样式和动画

功能概述

此示例演示了如何使用自定义 CSS 类来样式化被选中/选定的线条。它提供了多个可以动态应用的预定义样式和动画。

核心特性实现

1. 基于 CSS 类的样式

使用 CSS 类应用样式:

<div className={`my-graph my-line-style-${lineStyle} my-line-animation-${lineAnimation}`}>
    <RelationGraph options={graphOptions} />
</div>

2. 样式选择 UI

提供用于选择线条样式的界面:

<SimpleUISelect
    data={[
        { value: '', text: 'Default' },
        { value: '1', text: 'Style 1' },
        { value: '2', text: 'Style 2' },
        { value: '3', text: 'Style 3' },
        { value: '4', text: 'Style 4' }
    ]}
    onChange={(newValue: string) => setLineStyle(newValue)}
    currentValue={lineStyle}
/>

3. 动画选择

从预定义的动画中选择:

<SimpleUISelect
    data={[
        { value: '', text: 'None' },
        { value: '1', text: 'Animation 1' },
        { value: '2', text: 'Animation 2' },
        { value: '3', text: 'Animation 3' },
        { value: '4', text: 'Animation 4' }
    ]}
    onChange={(newValue: string) => setLineAnimation(newValue)}
    currentValue={lineAnimation}
/>

4. CSS 动画定义

在 SCSS 中定义动画:

// 示例:流动动画
.my-line-animation-1 .rel-line-checked {
    stroke-dasharray: 10;
    animation: dash-flow 1s linear infinite;
}

@keyframes dash-flow {
    to {
        stroke-dashoffset: -20;
    }
}

// 示例:脉冲动画
.my-line-animation-2 .rel-line-checked {
    animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; stroke-width: 3px; }
    50% { opacity: 0.5; stroke-width: 5px; }
}

5. 选中线条状态

设置初始选中的线条:

await graphInstance.setJsonData(myJsonData);
graphInstance.setCheckedLine('line-1');

创意使用场景

  • 活动路线高亮:在导航中显示当前选定的路线
  • 数据流动画:在系统图中动画显示活动数据路径
  • 警报状态:为关键连接使用脉冲动画
  • 进度指示:在流程图中显示流向
  • 交互式原型:创建引人入胜的演示界面
  • 状态监控:系统健康的视觉指示器