This section explains available templates in SpeedDial component and its usage.
You can use the itemTemplate
property to set a template content for the SpeedDial items. The template content is defined as a child content of itemTemplate
tag directive.
{ /* Import the Speed Dial. */ }
import { SpeedDialComponent } from '@syncfusion/ej2-react-buttons';
import * as React from 'react';
import * as ReactDom from 'react-dom';
{ /* To render Speed Dial.*/ }
function App() {
const items = [
{ iconCss: 'e-icons e-cut', text: 'Cut' },
{ iconCss: 'e-icons e-copy', text: 'Copy' },
{ iconCss: 'e-icons e-paste', text: 'Paste' }
];
function itemTemplate(props) {
let classname = "icon " + props.properties.iconCss;
return (<div className="itemlist">
<span className={classname}></span>
<span className="text">{props.properties.text}</span>
</div>);
}
return (<div>
<div id="targetElement" style={{ position: 'relative', minHeight: '350px', border: '1px solid' }}></div>
<SpeedDialComponent id='speeddial' openIconCss='e-icons e-edit' content="Edit" items={items} itemTemplate={itemTemplate} target="#targetElement"></SpeedDialComponent>
</div>);
}
export default App;
ReactDom.render(<App />, document.getElementById('button'));
<!DOCTYPE html>
<html lang="en">
<head>
<title>Syncfusion React Floating Action Button</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 for React Components" />
<meta name="author" content="Syncfusion" />
<link href="//cdn.syncfusion.com/ej2/20.4.48/ej2-base/styles/material.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/20.4.48/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="index.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='button'>
<div id='loader'>Loading....</div>
</div>
</body>
</html>
{/* Import the Speed Dial. */}
import { SpeedDialComponent, SpeedDialItemModel } from '@syncfusion/ej2-react-buttons';
import * as React from 'react';
import * as ReactDom from 'react-dom';
{/* To render Speed Dial.*/}
function App() {
const items: SpeedDialItemModel[] = [
{ iconCss: 'e-icons e-cut', text: 'Cut' },
{ iconCss: 'e-icons e-copy', text: 'Copy' },
{ iconCss: 'e-icons e-paste', text: 'Paste' }
];
function itemTemplate(props: any): JSX.Element {
let classname: string = "icon " + props.properties.iconCss;
return (
<div className="itemlist">
<span className={classname}></span>
<span className="text">{props.properties.text}</span>
</div>);
}
return (
<div>
<div id="targetElement" style={{position:'relative', minHeight:'350px', border:'1px solid'}}></div>
{/* Initialize the SpeedDial component */}
<SpeedDialComponent id='speeddial' openIconCss='e-icons e-edit' content="Edit" items={items} itemTemplate={itemTemplate} target="#targetElement"></SpeedDialComponent>
</div>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('button'));
You can use the popupTemplate
property to set a template content for popup of SpeedDial component. The template content is defined as a child content of popupTemplate
tag directive.
{ /* Import the Speed Dial. */ }
import { SpeedDialComponent } from '@syncfusion/ej2-react-buttons';
import * as React from 'react';
import * as ReactDom from 'react-dom';
{ /* To render Speed Dial.*/ }
function App() {
function popupTemplate() {
return (<div>
<div className="speeddial-form">
<p>Here you can customize your code.</p>
</div>
</div>);
}
return (<div>
<div id="targetElement" style={{ position: 'relative', minHeight: '350px', border: '1px solid' }}></div>
<SpeedDialComponent id='speeddial' content="Edit" popupTemplate={popupTemplate} target="#targetElement"></SpeedDialComponent>
</div>);
}
export default App;
ReactDom.render(<App />, document.getElementById('button'));
<!DOCTYPE html>
<html lang="en">
<head>
<title>Syncfusion React Floating Action Button</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 for React Components" />
<meta name="author" content="Syncfusion" />
<link href="//cdn.syncfusion.com/ej2/20.4.48/ej2-base/styles/material.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/20.4.48/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="index.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='button'>
<div id='loader'>Loading....</div>
</div>
</body>
</html>
{/* Import the Speed Dial. */}
import { SpeedDialComponent, SpeedDialItemModel } from '@syncfusion/ej2-react-buttons';
import * as React from 'react';
import * as ReactDom from 'react-dom';
{/* To render Speed Dial.*/}
function App() {
function popupTemplate(): JSX.Element {
return (
<div>
<div className="speeddial-form">
<p>Here you can customize your code.</p>
</div>
</div>);
}
return (
<div>
<div id="targetElement" style={{position:'relative', minHeight:'350px', border:'1px solid'}}></div>
{/* Initialize the SpeedDial component */}
<SpeedDialComponent id='speeddial' content="Edit" popupTemplate={popupTemplate} target="#targetElement"></SpeedDialComponent>
</div>
);
}
export default App;
ReactDom.render(<App />,document.getElementById('button'));