Blazor
Wasm
- Criando um Carousel
![]() |
Neste artigo veremos como criar um carousel em um projeto Blazor WebAssembly de forma bem simples. |
Também conhecidos como controles deslizantes, galerias e apresentações de slides, os carrosséis da Web permitem exibir texto, gráficos, imagens e até mesmo vídeos em um bloco “deslizante” interativo.
Desta forma os carrosséis são uma ótima opção de design para agrupar conteúdo e ideias — permitindo que você forme relacionamentos visuais entre partes específicas do conteúdo.
Neste artigo veremos como criar um carousel em um projeto Blazor WebAssembly criado no .NET 7 e usando o carousel do Bootstrap 5.1.
Criando a aplicação : BlazorCarousel
Vamos abrir o Visual Studio 2022 clicar em Create a new Project e selecionar o template Blazor WebAssembly app :
Informe o nome BlazorCarousel e defina as seguintes configurações:
Vamos limpar os componentes criados por padrão que não vamos usar em nosso projeto.
A seguir vamos incluir no arquivo Index.html uma referência ao script :
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
E a seguir vamos criar a função javascript startCarousel() :
<script
type="text/javascript"> function startCarousel(carouselId) { var myCarousel = document.getElementById(carouselId); var carousel = new bootstrap.Carousel(myCarousel); carousel.cycle(); // faz com que o carousel inicie imediatamente } </script> |
A seguir temos o código completo do arquivo Index.html :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>BlazorCarousel</title> <base href="/" /> <link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" /> <link href="css/app.css" rel="stylesheet" /> <link rel="icon" type="image/png" href="favicon.png" /> <link href="BlazorCarousel.styles.css" rel="stylesheet" /> <script type="text/javascript"> function startCarousel(carouselId) { // NOTE: this JavaScript function added var myCarousel = document.getElementById(carouselId); var carousel = new bootstrap.Carousel(myCarousel); carousel.cycle(); // NOTE: this will cause the carousel to start immediately } </script> </head> <body> <div id="app"> <svg class="loading-progress"> <circle r="40%" cx="50%" cy="50%" /> <circle r="40%" cx="50%" cy="50%" /> </svg> <div class="loading-progress-text"></div> </div> <div id="blazor-error-ui"> An unhandled error has occurred. <a href="" class="reload">Reload</a> <a class="dismiss">🗙</a> </div> <script src="_framework/blazor.webassembly.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script> </body> </html> |
Criando o componente Carousel.razor
Vamos agora criar na pasta Pages o componente Carousel.razor :
@page "/carousel" @inject IJSRuntime JSRuntime
<h3>Carousel</h3>
@code {
protected override async Task OnAfterRenderAsync(bool firstRender) |
A seguir vamos ajustar o componente NavMenu.razor para exibir o menu para exibir o carousel:
... <div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu"> <nav class="flex-column"> <div class="nav-item px-3"> <NavLink class="nav-link" href="" Match="NavLinkMatch.All"> <span class="oi oi-home" aria-hidden="true"></span> Home </NavLink> </div> <div class="nav-item px-3"> <NavLink class="nav-link" href="carousel"> <span class="oi oi-plus" aria-hidden="true"></span> Carousel </NavLink> </div> </nav> </div> ... |
No componente Index.razor vamos incluir o código abaixo que vai exibir a imagem carousel1.jpg da pasta wwwroot do projeto:
@page
"/" < PageTitle>Index</PageTitle>< h3>Carousel</h3>< img src="/carousel1.jpg" />
|
Executando o projeto iremos obter o seguinte resultado:
Pegue o projeto aqui:
BlazorCarousel.zip
"Eu sou o Alfa e o Ômega, o princípio e o fim, o
primeiro e o derradeiro.
Bem-aventurados aqueles que guardam os seus
mandamentos, para que tenham direito à árvore da vida, e possam entrar na cidade
pelas portas."
Apocalipse 22:13-14
Referências:
NET - Unit of Work - Padrão Unidade de ...