日前,苹果公司举办了2021秋季产品发布会。不知道你认为十三香不香,我反正准备让手上的6s继续服役。发布会上有个酷炫的滚动照片墙,其实Power BI也能做。
版本可以多种多样,下图是间隔滚动版:
双向滚动版:
变速版:
无限循环版:
实现原理是照片批量嵌入SVG,利用SVG的动画标签按照DAX指定的路径运动。
准备好照片数据,为每个类别建立索引(本例有四个类别,即照片显示四行),每个类别下的每张照片建立子索引。
以双向滚动版为例,新建度量值:
代码语言:javascript复制滚动照片墙双向版 =
VAR SVG_Table=ADDCOLUMNS('照片', "Image标签",
"<image xlink:href='"&[URL]&"' x='"&([子索引]-1)*100 &"' y='"&([索引]-1)*100 &"' height='100' weight='100'>
<animate attributeName='x' by='"&IF(MOD([索引],2)<>0,800,-800)&"' begin='0s' dur='10s' repeatCount='indefinite'/>
</image>")
Return
"<svg xmlns='http://www.w3.org/2000/svg' height='400' width='800'>"&
CONCATENATEX(SVG_Table,[Image标签])&"
</svg>"
解释说明如下:
将度量值拖动到Html Content这个图表即可实现动画中的滚动效果。
对于间隔滚动,只需要将by后面的if函数-800改为0;每行滚动速度不同可以将dur中的固定秒数按行单独设置;没有留白无限循环的模式读者可以想下怎么解决,想到可以留言。
这种滚动效果绝不仅仅是用来娱乐,将一些业务指标做成卡片,放在大屏滚动效果也会不错。