Tab supports custom animations for both previous and next actions from the provided animation option of Animation
library. The animation
property also allows you to set easing
, duration
, and various other effect
.
Default animation is given as SlideLeftIn
for previous
tab animation and SlideRightIn
for next
tab animation. You can also disable the animation by setting the animation effect as None
. Also, please use the following CSS to disable indicator animation for animation effect as None
.
.e-tab .e-tab-header:not(.e-vertical) .e-indicator, .e-tab .e-tab-header.e-vertical .e-indicator {
transition: none;
}
The sample demonstrates some types of animation that suits Tab. You can check all the animation effects here.
import { Tab, selectEventArgs } from '@syncfusion/ej2-navigations';
import { DropDownList } from '@syncfusion/ej2-dropdowns';
let tabObj: Tab = new Tab({
items: [{
header: { 'text': 'Twitter' },
content: 'Twitter is an online social networking service that enables users to send and read short 140-character ' +
'messages called "tweets". Registered users can read and post tweets, but those who are unregistered can only read ' +
'them. Users access Twitter through the website interface, SMS or mobile device app Twitter Inc. is based in San ' +
'Francisco and has more than 25 offices around the world. Twitter was created in March 2006 by Jack Dorsey, ' +
'Evan Williams, Biz Stone, and Noah Glass and launched in July 2006. The service rapidly gained worldwide popularity, ' +
'with more than 100 million users posting 340 million tweets a day in 2012.The service also handled 1.6 billion ' +
'search queries per day.'
},
{
header: { 'text': 'Facebook' },
content: 'Facebook is an online social networking service headquartered in Menlo Park, California. Its website was ' +
'launched on February 4, 2004, by Mark Zuckerberg with his Harvard College roommates and fellow students Eduardo ' +
'Saverin, Andrew McCollum, Dustin Moskovitz and Chris Hughes.The founders had initially limited the website\'\s ' +
'membership to Harvard students, but later expanded it to colleges in the Boston area, the Ivy League, and Stanford ' +
'University. It gradually added support for students at various other universities and later to high-school students.'
},
{
header: { 'text': 'WhatsApp' },
content: 'WhatsApp Messenger is a proprietary cross-platform instant messaging client for smartphones that operates ' +
'under a subscription business model. It uses the Internet to send text messages, images, video, user location and ' +
'audio media messages to other users using standard cellular mobile numbers. As of February 2016, WhatsApp had a user ' +
'base of up to one billion,[10] making it the most globally popular messaging application. WhatsApp Inc., based in ' +
'Mountain View, California, was acquired by Facebook Inc. on February 19, 2014, for approximately US6. 9.3 billion.'
}
]
});
tabObj.appendTo('#element');
let listObjPrevious: DropDownList = new DropDownList({
index: 0,
placeholder: 'Select a animate type',
popupHeight: '150px',
change: () => { valueChange(); }
});
listObjPrevious.appendTo('#previousAnimation');
let listObjNext: DropDownList = new DropDownList({
index: 1,
placeholder: 'Select a animate type',
popupHeight: '150px',
change: () => { valueChange1(); }
});
listObjNext.appendTo('#nextAnimation');
function valueChange(): void {
tabObj.animation.previous.effect = listObjPrevious.value;
}
function valueChange1(): void {
tabObj.animation.next.effect = listObjNext.value;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 Tab</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 Tab" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div id="default" style="padding-bottom:75px;">
<div class='row'>
<div class="col-xs-6 col-sm-6 col-lg-6 col-md-6">
<label> Previous Animation </label>
</div>
<div class="col-xs-6 col-sm-6 col-lg-6 col-md-6">
<select id="previousAnimation">
<option value="SlideLeftIn">SlideLeftIn</option>
<option value="SlideRightIn">SlideRightIn</option>
<option value="FadeIn">FadeIn</option>
<option value="FadeOut">FadeOut</option>
<option value="FadeZoomIn">FadeZoomIn</option>
<option value="FadeZoomOut">FadeZoomOut</option>
<option value="ZoomIn">ZoomIn</option>
<option value="ZoomOut">ZoomOut</option>
<option value="None">None</option>
</select>
</div>
</div>
<div class='row'>
<div class="col-xs-6 col-sm-6 col-lg-6 col-md-6">
<label> Next Animation </label>
</div>
<div class="col-xs-6 col-sm-6 col-lg-6 col-md-6">
<select id="nextAnimation">
<option value="SlideLeftIn">SlideLeftIn</option>
<option value="SlideRightIn">SlideRightIn</option>
<option value="FadeIn">FadeIn</option>
<option value="FadeOut">FadeOut</option>
<option value="FadeZoomIn">FadeZoomIn</option>
<option value="FadeZoomOut">FadeZoomOut</option>
<option value="ZoomIn">ZoomIn</option>
<option value="ZoomOut">ZoomOut</option>
<option value="None">None</option>
</select>
</div>
</div>
<div id='element'></div>
<br/><br/>
<div id='result'></div>
</div>
</body>
</html>