O desenvolvimento moderno da web se concentra cada vez mais na interação do usuário, e hoje vamos ver um tutorial simples de como realizarmos o efeito de “comparação” entre duas imagens. Twenty Twenty é um desses plugins que fornece visualização de comparação de imagem interativa. Este plugin baseado em JQuery pode ser utilizado para mostrar a comparação de produtos de forma mais interativa.
A primeira coisa a ser necessária, é possuir um projeto de MVC já criado para que possamos utilizar e adicionar as referências do plugin. Faça o download do plugin aqui. Após o download, eu criei uma pasta chamada plugin e adicionei a referência do mesmo em uma view com a estrutura básica necessária, no caso eu adicionei na view Shared->_Layout.cshtml que é a view compartilhada do nosso projeto, sendo o mais recomendado adicionarmos referências por lá:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") <!-- Font Awesome --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" /> <!-- Img Diff --> @Styles.Render("~/Plugin/Twenty-Twenty/css") </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> </div> </div> <div class="container body-content"> @RenderBody() <hr /> <footer> <center> <p><strong>Copyright © @DateTime.Now.Year - <a href="http://wwww.asmak9.com/">Asma's Blog</a>.</strong> All rights reserved.</p> </center> </footer> </div> @*Scripts*@ @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") <!-- Img Diff --> @Scripts.Render("~/Plugin/Twenty-Twenty") @RenderSection("scripts", required: false) </body> </html>
Agora na sua controller (se não existir, crie uma), você precisará adicionar o seguinte código:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace ImgDiff.Controllers { public class ImgDiffController : Controller { #region Index view method. #region Get: /ImgDiff/Index. /// <summary> /// Get: /ImgDiff/Index. /// </summary> /// <returns>Return index view</returns> public ActionResult Index() { try { } catch (Exception ex) { // Info Console.Write(ex); } // Info. return this.View(); } #endregion #endregion } }
Agora na sua view (se não existir, crie uma), adicione as imagens e o trecho do plugin para comparação das imagens:
@{ ViewBag.Title = "ASP.NET MVC5: Jquery Image Diff"; } <div class="row"> <div class="panel-heading"> <div class="col-md-8"> <h3> <i class="fa fa-file-text-o"></i> <span>ASP.NET MVC5: Jquery Image Diff</span> </h3> </div> </div> </div> <div class="row"> <section class="col-md-7 col-md-push-3"> <div class="large-8 columns"> <div class="twentytwenty-container"> <img src="~/Content/img/ori.jpg" /> <img src="~/Content/img/bright.jpg" /> </div> </div> </section> </div> <script>$(document).ready(function () { $(".twentytwenty-container").twentytwenty({ default_offset_pct: 0.5 }); }); </script>
No trecho de código acima, eu adicionei o plugin “Twenty Twenty” JQuery para mostrar minha diferença/comparação de imagens. Também configurei a posição do controle deslizante de comparação padrão para ser centrada, ela pode ser definida entre o intervalo de 0 a 1.
Um grande abraço a todos!
Referências: https://gallery.technet.microsoft.com/ASPNET-MVC5-JQuery-Image-1001a821