|
@using Syncfusion.Blazor.Navigations
<div class="control-section">
<div class="menu-control">
<SfMenu TValue="MenuItem" CssClass="e-custom">
<MenuItems>
<MenuItem Text="Mac" Url="/Mac"></MenuItem>
<MenuItem Text="iPad" Url="/iPad"></MenuItem>
<MenuItem Text="iPhone" Url="/iPhone"></MenuItem>
<MenuItem Text="Watch" Url="/Watch"></MenuItem>
<MenuItem Text="TV" Url="TV"></MenuItem>
<MenuItem Text="Music" Url="/Music"></MenuItem>
<MenuItem Text="Support" Url="/Support"></MenuItem>
</MenuItems>
</SfMenu>
</div>
</div>
<style>
.e-menu-container.e-custom ul a.e-menu-text.e-menu-url {
font-size: 14px;
font-weight: 400;
letter-spacing: -.01em;
font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
color: #f5f5f7;
padding: 0 10px;
height: 44px;
opacity: .8;
transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.main, .e-menu-container ul {
background-color: rgba(0,0,0,0.8);
}
.e-menu-container.e-custom ul li.e-focused a.e-menu-text.e-menu-url {
color: #EFF;
outline: 0 solid #f2f4f6;
}
.main {
height:968px;
}
.menu-control {
background-color: rgba(0,0,0,0.8);
text-align: center;
line-height:0.5;
}
</style>
|
|
@using Syncfusion.Blazor.Navigations
@inject IJSRuntime JSRuntime;
<div class="control-section">
<div class="menu-control">
<SfMenu TValue="MenuItem" CssClass="e-custom" HamburgerMode="@hamburgerMode">
<MenuItems>
<MenuItem Text="Mac" Url="/Mac"></MenuItem>
<MenuItem Text="iPad" Url="/iPad"></MenuItem>
<MenuItem Text="iPhone" Url="/iPhone"></MenuItem>
<MenuItem Text="Watch" Url="/Watch"></MenuItem>
<MenuItem Text="TV" Url="TV"></MenuItem>
<MenuItem Text="Music" Url="/Music"></MenuItem>
<MenuItem Text="Support" Url="/Support"></MenuItem>
</MenuItems>
<MenuEvents TValue="MenuItem" Created="Created"></MenuEvents>
</SfMenu>
</div>
</div>
@code {
private bool hamburgerMode;
private static Action<double> action;
private async Task Created()
{
action = ResizeHandler;
var width = await JSRuntime.InvokeAsync<double?>("registerResizeCallback", null);
ResizeHandler((double)width);
}
[JSInvokable]
public static void OnBrowserResize(double width) => action.Invoke(width);
private void ResizeHandler(double width)
{
if (width < 600) //Menu will be changed to hamburger mode, when the screen size is less than 600.
{
if (!hamburgerMode)
{
hamburgerMode = true;
StateHasChanged();
}
}
else
{
if (hamburgerMode)
{
hamburgerMode = false;
StateHasChanged();
}
}
}
}
<style>
.e-menu-container.e-custom ul a.e-menu-text.e-menu-url {
font-size: 14px;
font-weight: 400;
letter-spacing: -.01em;
font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
color: #f5f5f7;
padding: 0 10px;
height: 44px;
opacity: .8;
transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}
// hamburgerMode Styles issue resolved
.e-menu-container.e-custom.e-hamburger .e-menu-header .e-menu-icon,
.e-menu-container.e-custom.e-hamburger .e-menu-header {
color: #f5f5f7;
}
.main, .e-menu-container ul {
background-color: rgba(0,0,0,0.8);
}
.e-menu-container.e-custom ul li.e-focused a.e-menu-text.e-menu-url {
color: #EFF;
outline: 0 solid #f2f4f6;
}
.main {
height: 968px;
}
.menu-control {
background-color: rgba(0,0,0,0.8);
text-align: center;
line-height: 0.5;
}
</style>
|
|
<script>
window.registerResizeCallback = function () {
window.addEventListener('resize', resized);
return window.innerWidth;
}
window.resized = function () {
DotNet.invokeMethodAsync('BlazorApp-ServerSide', 'OnBrowserResize', window.innerWidth);
}
</script> |
|
<SfMenu TValue="MenuItem" CssClass="e-custom" HamburgerMode="@hamburgerMode" Title="Apple">
<MenuItems>
<MenuItem Text="Mac" Url="/Mac"></MenuItem>
<MenuItem Text="iPad" Url="/iPad"></MenuItem>
<MenuItem Text="iPhone" Url="/iPhone"></MenuItem>
<MenuItem Text="Watch" Url="/Watch"></MenuItem>
<MenuItem Text="TV" Url="TV"></MenuItem>
<MenuItem Text="Music" Url="/Music"></MenuItem>
<MenuItem Text="Support" Url="/Support"></MenuItem>
</MenuItems>
<MenuEvents TValue="MenuItem" Created="Created"></MenuEvents>
</SfMenu>
|
|
<style>
.e-menu-container.e-custom ul .e-menu-item .e-caret {
color: #f5f5f7;
}
.e-menu-container.e-menu-popup {
background-color: rgba(0,0,0,0.8);
}
.e-menu-container.e-custom.e-menu-popup ul a.e-menu-text.e-menu-url {
color: #f5f5f7;
}
.e-menu-container.e-custom .e-menu-popup ul li.e-focused a.e-menu-text.e-menu-url,
.e-menu-container.e-custom.e-menu-popup ul li.e-focused a.e-menu-text.e-menu-url {
color: rgba(0,0,0,0.8);
}
.e-menu-container.e-custom ul a.e-menu-text.e-menu-url {
font-size: 14px;
font-weight: 400;
letter-spacing: -.01em;
font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
color: #f5f5f7;
padding: 0 10px;
height: 44px;
opacity: .8;
transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.e-menu-container.e-custom.e-hamburger .e-menu-header .e-menu-icon,
.e-menu-container.e-custom.e-hamburger .e-menu-header {
color: #f5f5f7;
}
.main, .e-menu-container ul {
background-color: rgba(0,0,0,0.8);
}
.e-menu-container.e-custom ul li.e-focused a.e-menu-text.e-menu-url {
color: #EFF;
outline: 0 solid #f2f4f6;
}
.main {
height: 968px;
}
.menu-control {
background-color: rgba(0,0,0,0.8);
text-align: center;
line-height: 0.5;
}
</style>
|
|
.e-menu-container.e-custom ul a.e-menu-text.e-menu-url,
.e-menu-container.e-custom ul .e-menu-item .e-caret |
Customize root menu items |
|
.e-menu-container.e-custom.e-menu-popup ul a.e-menu-text.e-menu-url,
.e-menu-container.e-menu-popup |
Customize sub menu items |
|
.e-menu-container.e-custom .e-menu-popup ul li.e-focused a.e-menu-text.e-menu-url,
.e-menu-container.e-custom.e-menu-popup ul li.e-focused a.e-menu-text.e-menu-url |
Customize highlighted sub menu items |
|
.e-menu-container .e-ul .e-menu-item.e-selected,
.e-menu-container .e-ul .e-menu-item.e-selected .e-caret
|
Customize selected sub menu items |
|
<SfMenu TValue="MenuItem" CssClass="e-custom" HamburgerMode="@hamburgerMode" Title="">
----
</SfMenu>
<style>
.e-menu-title:before {
content: '\e7e2';
}
.e-menu-title {
font-size: 18px;
font-family: 'e-icons';
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: 1;
text-transform: none;
padding-left: 40px; // you can adjust the icon space
}
</style>
|
|
<SfMenu TValue="MenuItem" CssClass="e-custom" HamburgerMode="@hamburgerMode" Title="">
---------------------------
<MenuEvents TValue="MenuItem" Created="Created" OnOpen="BeforeOpenMenu" Closed="CloseMenu"></MenuEvents>
</SfMenu>
@code {
private string content = "e7cd"; // Menu icon
private void BeforeOpenMenu(BeforeOpenCloseMenuEventArgs<MenuItem> args)
{
if (args.ParentItem==null)
{
content = "e745"; // X icon
}
}
private void CloseMenu(OpenCloseMenuEventArgs<MenuItem> args)
{
if (args.ParentItem == null)
{
content = "e7cd"; //Menu icon
}
}
}
<style>
.e-menu-container.e-hamburger .e-menu-header .e-menu-icon::before {
content: '\@content';
}
</style>
|
|
<style>
.e-menu-container.e-hamburger ul.e-menu-parent .e-menu-item .e-menu-text,
.e-menu-container.e-hamburger ul.e-menu-parent .e-menu-item .e-menu-container.e-menu-popup .e-menu-text {
border-bottom: 1px solid #fff;
}
.e-menu-container.e-hamburger ul.e-menu-parent li.e-menu-item:last-child .e-menu-text {
border-bottom: none;
}</style>
|
|
<style>
.e-menu-container.e-custom ul a.e-menu-text.e-menu-url {
font-size: 14px;
font-weight: 400;
letter-spacing: -.01em;
font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
color: #f5f5f7;
padding: 0 10px;
height: 48px;
opacity: .8;
transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}
</style>
|
|
<SfMenu TValue="MenuItem" CssClass="e-custom" HamburgerMode="@hamburgerMode" Title="Metric" @ref="MenuObj">
<MenuItems>
<MenuItem Text="Metric" Url="/"></MenuItem>
<MenuItem Text="Products" Url="/">
<MenuItems>
<MenuItem Text="Web Reporting" Url="/Reporting"></MenuItem>
<MenuItem Text="ERP" Url="/iPhone"></MenuItem>
</MenuItems>
</MenuItem>
<MenuItem>
<MenuItem Text="About Us" Url="/Aboutus"></MenuItem>
</MenuItem>
</MenuItems>
<MenuEvents TValue="MenuItem" Created="Created" OnOpen="BeforeOpenMenu" Closed="CloseMenu" ItemSelected="SelectHandler"></MenuEvents>
</SfMenu>
@code {
private void SelectHandler(MenuEventArgs<MenuItem> e)
{
if(e.Item.Items == null)
{
MenuObj.Close();
}
}
} |