Compare commits
2 Commits
5d566648e5
...
40b2704a15
Author | SHA1 | Date | |
---|---|---|---|
40b2704a15
|
|||
04053e25ed
|
@@ -45,19 +45,13 @@
|
|||||||
margin: 0 calc(15/1920*100%);
|
margin: 0 calc(15/1920*100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tramLinePicto {
|
|
||||||
aspect-ratio : 1 / 1;
|
|
||||||
height: calc(100/176*100%);
|
|
||||||
margin-right: calc(23/1920*100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.busLinePicto {
|
.busLinePicto {
|
||||||
aspect-ratio : 2.25;
|
aspect-ratio : 2.25;
|
||||||
height: calc(70/176*100%);
|
height: calc(70/176*100%);
|
||||||
margin-right: calc(23/1920*100%);
|
margin-right: calc(23/1920*100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.metroLinePicto, .trainLinePicto {
|
.metroLinePicto, .tramLinePicto, .trainLinePicto {
|
||||||
aspect-ratio : 1 / 1;
|
aspect-ratio : 1 / 1;
|
||||||
height: calc(100/176*100%);
|
height: calc(100/176*100%);
|
||||||
margin-right: calc(23/1920*100%);
|
margin-right: calc(23/1920*100%);
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
import { VoidComponent, createResource, ParentComponent, ParentProps, Show, useContext, For } from 'solid-js';
|
import { VoidComponent, createResource, onMount, ParentComponent, ParentProps, Show, useContext, For } from 'solid-js';
|
||||||
import { createDateNow, getTime } from '@solid-primitives/date';
|
import { createDateNow, getTime } from '@solid-primitives/date';
|
||||||
|
|
||||||
|
import { timeline } from '@motionone/dom';
|
||||||
import { AnimationOptions } from '@motionone/types';
|
import { AnimationOptions } from '@motionone/types';
|
||||||
import { Motion } from "@motionone/solid";
|
import { Motion } from "@motionone/solid";
|
||||||
|
|
||||||
@@ -79,6 +81,24 @@ const DestinationPassages: VoidComponent<{ line: Line, destination: string }> =
|
|||||||
// const trafficStatusStyle = { fill: trafficStatusColor.get(props.line.trafficStatus) };
|
// const trafficStatusStyle = { fill: trafficStatusColor.get(props.line.trafficStatus) };
|
||||||
const trafficStatusStyle = { fill: trafficStatusColor.get(TrafficStatus.UNKNOWN) };
|
const trafficStatusStyle = { fill: trafficStatusColor.get(TrafficStatus.UNKNOWN) };
|
||||||
|
|
||||||
|
let destinationViewboxRef: SVGSVGElement | undefined = undefined;
|
||||||
|
let destinationTextRef: SVGTextElement | undefined = undefined;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
if (destinationViewboxRef !== undefined && destinationTextRef !== undefined) {
|
||||||
|
const overlap = destinationTextRef.getComputedTextLength() - destinationViewboxRef.viewBox.baseVal.width;
|
||||||
|
if (overlap > 0) {
|
||||||
|
timeline(
|
||||||
|
[
|
||||||
|
[destinationTextRef, { x: [-overlap] }, { duration: 5 }],
|
||||||
|
[destinationTextRef, { x: [0] }, { duration: 2 }],
|
||||||
|
],
|
||||||
|
{ repeat: Infinity },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class={styles.line}>
|
<div class={styles.line}>
|
||||||
<div class={styles.transportMode}>
|
<div class={styles.transportMode}>
|
||||||
@@ -86,8 +106,11 @@ const DestinationPassages: VoidComponent<{ line: Line, destination: string }> =
|
|||||||
</div>
|
</div>
|
||||||
{renderLinePicto(props.line, styles)}
|
{renderLinePicto(props.line, styles)}
|
||||||
<div class={styles.destination}>
|
<div class={styles.destination}>
|
||||||
<svg viewBox="0 0 600 40">
|
<svg ref={destinationViewboxRef} viewBox="0 0 600 40">
|
||||||
<text x="0" y="50%" dominant-baseline="middle" font-size="40" style={{ fill: "#000000" }}>
|
<text ref={destinationTextRef} x="0" y="50%"
|
||||||
|
dominant-baseline="middle"
|
||||||
|
font-size="40"
|
||||||
|
style={{ fill: "#000000" }}>
|
||||||
{props.destination}
|
{props.destination}
|
||||||
</text>
|
</text>
|
||||||
</svg>
|
</svg>
|
||||||
|
Reference in New Issue
Block a user