How can I help you?
Orientations in EJ2 TypeScript Timeline control
5 Mar 20266 minutes to read
The Timeline control supports displaying items in both horizontal and vertical directions using the orientation property.
Vertical Orientation
Set the orientation property to Vertical to display items stacked vertically (one below another). Vertical is the default orientation.
import { Timeline, TimelineItemModel } from '@syncfusion/ej2-layouts';
const tripItenerary: TimelineItemModel[] = [
{ content: 'Day 1, 4:00 PM', oppositeContent: 'Check-in and campsite visit' },
{ content: 'Day 1, 7:00 PM', oppositeContent: 'Dinner with music' },
{ content: 'Day 2, 5:30 AM', oppositeContent: 'Sunrise between mountains' },
{ content: 'Day 2, 8:00 AM', oppositeContent: 'Breakfast and check-out' },
];
// Initializes the Timeline control
let timeline: Timeline = new Timeline({
items: tripItenerary,
orientation: 'Vertical'
});
// Render initialized Timeline.
timeline.appendTo("#timeline");<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 - Timeline</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="description" content="Essential JS 2" />
<meta name="author" content="Syncfusion" />
<link href="https://cdn.syncfusion.com/ej2/32.2.3/ej2-base/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.2.3/ej2-layouts/styles/fluent2.css" rel="stylesheet" />
<!--style reference from app-->
<link href="styles.css" rel="stylesheet" />
<!--system js reference and configuration-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div id="timeline"></div>
</div>
<style>
#container {
width: 60%;
margin: 20px auto;
padding: 20px;
}
#container:has(.e-vertical) {
height: 300px;
}
</style>
</body>
</html>#container {
margin-top: 30px;
padding: 30px;
}
#loader {
color: #008cff;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}Horizontal Orientation
In horizontal orientation, items are displayed side-by-side by setting the orientation property to Horizontal.
import { Timeline, TimelineItemModel } from '@syncfusion/ej2-layouts';
const tripItenerary: TimelineItemModel[] = [
{ content: 'Day 1, 4:00 PM', oppositeContent: 'Check-in and campsite visit' },
{ content: 'Day 1, 7:00 PM', oppositeContent: 'Dinner with music' },
{ content: 'Day 2, 5:30 AM', oppositeContent: 'Sunrise between mountains' },
{ content: 'Day 2, 8:00 AM', oppositeContent: 'Breakfast and check-out' },
];
// Initializes the Timeline control
let timeline: Timeline = new Timeline({
items: tripItenerary,
orientation: 'Horizontal'
});
// Render initialized Timeline.
timeline.appendTo("#timeline");<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 - Timeline</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="description" content="Essential JS 2" />
<meta name="author" content="Syncfusion" />
<link href="https://cdn.syncfusion.com/ej2/32.2.3/ej2-base/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.2.3/ej2-layouts/styles/fluent2.css" rel="stylesheet" />
<!--style reference from app-->
<link href="styles.css" rel="stylesheet" />
<!--system js reference and configuration-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div id="timeline"></div>
</div>
</body>
</html>#container {
visibility: hidden;
margin-top: 30px;
padding: 30px;
}
#loader {
color: #008cff;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}