#sampleImg { cursor: pointer; transition: 0.3s; } #sampleImg:hover {opacity: 0.7;} .modal { position: fixed; z-index: 1; padding-top: 100px; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.9); } .modal-content { margin: auto; display: block; width: 80%; max-width: 700px; } #desc { margin: auto; display: block; width: 80%; max-width: 700px; text-align: center; color: #ccc; padding: 10px 0; height: 150px; } .modal-content, #desc { -webkit-animation-name: zoom; -webkit-animation-duration: 0.6s; animation-name: zoom; animation-duration: 0.6s; } @-webkit-keyframes zoom { from {-webkit-transform:scale(0)} to {-webkit-transform:scale(1)} } @keyframes zoom { from {transform:scale(0)} to {transform:scale(1)} } .close { position: absolute; top: 15px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: bold; transition: 0.3s; } .close:hover, .close:focus { color: #bbb; text-decoration: none; cursor: pointer; } @media only screen and (max-width: 700px){ .modal-content { width: 100%; } }
var app = angular.module('app', []); app.controller('myCtrl', function($scope){ $scope.myModal = false; $scope.imgSrc = 'gardens.jpg'; $scope.alt = 'An Example of a Beautiful Garden'; $scope.showModal = function(){ $scope.myModal = true; } $scope.closeModal = function(){ $scope.myModal = false; } });
<!DOCTYPE html> <html ng-app="app"> <head> <meta charset="utf-8"> <style type="text/css"> #sampleImg { cursor: pointer; transition: 0.3s; } #sampleImg:hover {opacity: 0.7;} .modal { position: fixed; z-index: 1; padding-top: 100px; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.9); } .modal-content { margin: auto; display: block; width: 80%; max-width: 700px; } #desc { margin: auto; display: block; width: 80%; max-width: 700px; text-align: center; color: #ccc; padding: 10px 0; height: 150px; } .modal-content, #desc { -webkit-animation-name: zoom; -webkit-animation-duration: 0.6s; animation-name: zoom; animation-duration: 0.6s; } @-webkit-keyframes zoom { from {-webkit-transform:scale(0)} to {-webkit-transform:scale(1)} } @keyframes zoom { from {transform:scale(0)} to {transform:scale(1)} } .close { position: absolute; top: 15px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: bold; transition: 0.3s; } .close:hover, .close:focus { color: #bbb; text-decoration: none; cursor: pointer; } @media only screen and (max-width: 700px){ .modal-content { width: 100%; } } </style> </head> <body ng-controller="myCtrl"> <img id="sampleImg" ng-src="{{ imgSrc }}" alt="{{ alt }}" width="300" height="200" ng-click="showModal()"> <!-- Sample Modal --> <div class="modal" ng-show="myModal"> <img class="modal-content" ng-src="{{ imgSrc }}"> </div> <script> var app = angular.module('app', []); app.controller('myCtrl', function($scope){ $scope.myModal = false; $scope.imgSrc = 'gardens.jpg'; $scope.alt = 'An Example of a Beautiful Garden'; $scope.showModal = function(){ $scope.myModal = true; } $scope.closeModal = function(){ $scope.myModal = false; } }); </script> </body> </html>