Fitting Modal Lightbox

In this example below you will see how to do a Fitting Modal Lightbox with some HTML / CSS and Javascript

This is the playground for which I based my modal technology's lightbox mode.In this modal lightbox, the image always fits as best as it can. A must for mobile devices.

Thumbnail
This awesome code was written by ChaseMoskal, you can see more from this user in the personal repository.
You can find the original code on Codepen.io
Copyright ChaseMoskal ©

Technologies

  • HTML
  • CSS
  • JavaScript
<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  <title>Fitting Modal Lightbox</title>
  
  
  
      <link rel="stylesheet" href="css/style.css">

  
</head>

<body>

  <!--(
== Chase's Fitting Modal Lightbox ==

>> modalclub: theoretically, a page could enjoy multiple modals layered on top of one another. This <div> contains every modalbox on the page, and itself has no styling applied whatsoever.

>> modalbox: represents one modal, and conatins that modal's guts: being the modalblanket, and the actual "modal" itself.

>> modalblanket: masks out everything behind the modal.

>> modal: the actual modal window. Contains our lightbox image, and perhaps an optional <p> caption. I'm considering actually making this a <figure> instead of <div>, because it seems appropriate.

)-->
<div class="modalclub">
  <div class="modalbox">
    <div class="modalblanket"></div>
    <div class="modal">
      <img src="https://i.imgur.com/x1BZozH.jpg" alt="" />
    </div>
  </div>
</div>
<p class="bullshitcontent">
  Discumbere quam aniculae morsque nutricem, cumque ego esse ait regem consolatus. Numquid pecunias adfert ratione ornamentis rex ut libertatem accipies Tharsos determinatio vestes in rei finibus veteres hoc. Regem adventu nihil civitatis ne videret quaeritur sed. Gaudeo in deinde vero quo est se est Apollonius eius in rei finibus veteres hoc. Concordi fabricata ait regem adventu nihil, viscera tres potest in rei exultant deo. Indulgentia pedes Dianae non dum veniens Theophilum vinum dolor invenerit adduci ad te ad suis. Intuens forsitan Apollonius in fuerat accidens quam dolore me in deinde vero quo alacres ad nomine! Inter sacris virginitas o a a patriam Dianae, elige ipsa quod ait Cumque persequatur sic.
Impietas ideo dilectio incompletum ait. Esse more filiam rex ut a civitas iter navigaret ipsam consistit ait. Interpellastis Iuravi potest meum in modo invenit. Tempore percussus ait est cum obiectum est amet amet constanter determinatio debitis torporis quin, deum roseo commendavit fideliter harena in lucem exempli. Illa caelum pariter non solutionem invenisti naufragus tabulas morsu tuum tuas propinquior ait mea Christianis aedificatur ergo quod eam sed. Celebrantur nuptias iam est in deinde vero quo.
Redde pariter irrationabile navium propinares in, eiusdem ordo quos annorum afferte quaeque curiositatem est in. Interea applicuit defunctam vivum exiens forte prudentiae in, cur meae puer ut sua Cumque materia amicis filia omnes! Vituperia ad nomine sed eu fugiens laudo in modo cavendum es sed eu fides piissimi sibi dicit pietate. Neptuno ait mea ego quod eam ad nomine. Magna aliter quem acceperat utique dolorem in lucem exitum atque ut a patriam sum cum obiectum dixit hoc ambulare dolor exposuisset. Plenus redire in modo ad suis ut casus inferioribus civitatis civium currebant in. Quaere allocutus ait est in. Neptunus spatia tribulatione ad per accipere nescio atque leno. Theophile atque ut a a civitas ad suis ut a. Coram posset quaelibet potentialitas antequam nam nisi Apollonius in modo cavendum es est amet constanter approximavit te. Stranguillionis in deinde vero cum unde ascendit neque capite diademate constituit percussus ait est amet coram posset Denique laetare quod una. Domini in fuerat se ad te in lucem in lucem exempli paupers coniunx minus. Jesus Circumdat flante vestibus lumine restat cum obiectum aliquip ipsa codicellos. Vini ad nomine Piscatore mihi quidditas iter indica enim est cum autem illud ad te finis puellam.
Quem non dum autem quod tamen adnuente rediens eam in. Musis nihilominus admonendus tu mihi cum obiectum aliquip ipsa codicellos. Ambo una litus ostendam Apollonio in fuerat est se ad nomine Piscatore mihi servitute coniunx caritate completae ad nomine. Interrogo nata genere in fuerat se in fuerat eum filiam in lucem concitaverunt in. Quamdiu Alleva me testatur sed haec in lucem genero ergo quod tamen cursu. Amice suspiciosa mare demonstrantibus quaecumque ait Cumque autem Apolloni sed esse ait in deinde cupis hominem. Fulgor infaustissimi eum istam provoces Athenagora eius est in fuerat accidens suos faciam ipsum se vero rex. Advenientibus aliorum naufragium feugait o Neptuno ait regem Ardalio nos. Nomen imponite ipso mihi Tyrum ad per animum pares terris restituit. Inquisivi ecce codicellis desinit sestertia domine de memor cresceret nomina petitus non solutionem innocentem tantusque amorem civium takimata.
Duc quia iuvenis est amet Cur meae puer est amet amet consensit cellula filia dedit hoc. Athenagoram homo ad suis ut libertatem deum voluntati ad per animum est cum. Ascendens piratae apprehendat mecum loci haec sed eu fides piissimi sibi dicit pietate quid ait in lucem exempli. Ad quia quod non solutionem inveni Tharsia. Quem es ego quod eam eos. Ingreditur id quibus ut casus adprehendens melius nuntia dum. Intrat est cum magna Dianam Interposito brutis aeternae reversurus eum. Christe in lucem exitum vivit in modo cavendum es. Retrorsum redire in deinde cupis hominem eam ad per animum pares terris classes nostram dimensione resaluta in lucem.
  Discumbere quam aniculae morsque nutricem, cumque ego esse ait regem consolatus. Numquid pecunias adfert ratione ornamentis rex ut libertatem accipies Tharsos determinatio vestes in rei finibus veteres hoc. Regem adventu nihil civitatis ne videret quaeritur sed. Gaudeo in deinde vero quo est se est Apollonius eius in rei finibus veteres hoc. Concordi fabricata ait regem adventu nihil, viscera tres potest in rei exultant deo. Indulgentia pedes Dianae non dum veniens Theophilum vinum dolor invenerit adduci ad te ad suis. Intuens forsitan Apollonius in fuerat accidens quam dolore me in deinde vero quo alacres ad nomine! Inter sacris virginitas o a a patriam Dianae, elige ipsa quod ait Cumque persequatur sic.
Impietas ideo dilectio incompletum ait. Esse more filiam rex ut a civitas iter navigaret ipsam consistit ait. Interpellastis Iuravi potest meum in modo invenit. Tempore percussus ait est cum obiectum est amet amet constanter determinatio debitis torporis quin, deum roseo commendavit fideliter harena in lucem exempli. Illa caelum pariter non solutionem invenisti naufragus tabulas morsu tuum tuas propinquior ait mea Christianis aedificatur ergo quod eam sed. Celebrantur nuptias iam est in deinde vero quo.
Redde pariter irrationabile navium propinares in, eiusdem ordo quos annorum afferte quaeque curiositatem est in. Interea applicuit defunctam vivum exiens forte prudentiae in, cur meae puer ut sua Cumque materia amicis filia omnes! Vituperia ad nomine sed eu fugiens laudo in modo cavendum es sed eu fides piissimi sibi dicit pietate. Neptuno ait mea ego quod eam ad nomine. Magna aliter quem acceperat utique dolorem in lucem exitum atque ut a patriam sum cum obiectum dixit hoc ambulare dolor exposuisset. Plenus redire in modo ad suis ut casus inferioribus civitatis civium currebant in. Quaere allocutus ait est in. Neptunus spatia tribulatione ad per accipere nescio atque leno. Theophile atque ut a a civitas ad suis ut a. Coram posset quaelibet potentialitas antequam nam nisi Apollonius in modo cavendum es est amet constanter approximavit te. Stranguillionis in deinde vero cum unde ascendit neque capite diademate constituit percussus ait est amet coram posset Denique laetare quod una. Domini in fuerat se ad te in lucem in lucem exempli paupers coniunx minus. Jesus Circumdat flante vestibus lumine restat cum obiectum aliquip ipsa codicellos. Vini ad nomine Piscatore mihi quidditas iter indica enim est cum autem illud ad te finis puellam.
Quem non dum autem quod tamen adnuente rediens eam in. Musis nihilominus admonendus tu mihi cum obiectum aliquip ipsa codicellos. Ambo una litus ostendam Apollonio in fuerat est se ad nomine Piscatore mihi servitute coniunx caritate completae ad nomine. Interrogo nata genere in fuerat se in fuerat eum filiam in lucem concitaverunt in. Quamdiu Alleva me testatur sed haec in lucem genero ergo quod tamen cursu. Amice suspiciosa mare demonstrantibus quaecumque ait Cumque autem Apolloni sed esse ait in deinde cupis hominem. Fulgor infaustissimi eum istam provoces Athenagora eius est in fuerat accidens suos faciam ipsum se vero rex. Advenientibus aliorum naufragium feugait o Neptuno ait regem Ardalio nos. Nomen imponite ipso mihi Tyrum ad per animum pares terris restituit. Inquisivi ecce codicellis desinit sestertia domine de memor cresceret nomina petitus non solutionem innocentem tantusque amorem civium takimata.
Duc quia iuvenis est amet Cur meae puer est amet amet consensit cellula filia dedit hoc. Athenagoram homo ad suis ut libertatem deum voluntati ad per animum est cum. Ascendens piratae apprehendat mecum loci haec sed eu fides piissimi sibi dicit pietate quid ait in lucem exempli. Ad quia quod non solutionem inveni Tharsia. Quem es ego quod eam eos. Ingreditur id quibus ut casus adprehendens melius nuntia dum. Intrat est cum magna Dianam Interposito brutis aeternae reversurus eum. Christe in lucem exitum vivit in modo cavendum es. Retrorsum redire in deinde cupis hominem eam ad per animum pares terris classes nostram dimensione resaluta in lucem.
  Discumbere quam aniculae morsque nutricem, cumque ego esse ait regem consolatus. Numquid pecunias adfert ratione ornamentis rex ut libertatem accipies Tharsos determinatio vestes in rei finibus veteres hoc. Regem adventu nihil civitatis ne videret quaeritur sed. Gaudeo in deinde vero quo est se est Apollonius eius in rei finibus veteres hoc. Concordi fabricata ait regem adventu nihil, viscera tres potest in rei exultant deo. Indulgentia pedes Dianae non dum veniens Theophilum vinum dolor invenerit adduci ad te ad suis. Intuens forsitan Apollonius in fuerat accidens quam dolore me in deinde vero quo alacres ad nomine! Inter sacris virginitas o a a patriam Dianae, elige ipsa quod ait Cumque persequatur sic.
Impietas ideo dilectio incompletum ait. Esse more filiam rex ut a civitas iter navigaret ipsam consistit ait. Interpellastis Iuravi potest meum in modo invenit. Tempore percussus ait est cum obiectum est amet amet constanter determinatio debitis torporis quin, deum roseo commendavit fideliter harena in lucem exempli. Illa caelum pariter non solutionem invenisti naufragus tabulas morsu tuum tuas propinquior ait mea Christianis aedificatur ergo quod eam sed. Celebrantur nuptias iam est in deinde vero quo.
Redde pariter irrationabile navium propinares in, eiusdem ordo quos annorum afferte quaeque curiositatem est in. Interea applicuit defunctam vivum exiens forte prudentiae in, cur meae puer ut sua Cumque materia amicis filia omnes! Vituperia ad nomine sed eu fugiens laudo in modo cavendum es sed eu fides piissimi sibi dicit pietate. Neptuno ait mea ego quod eam ad nomine. Magna aliter quem acceperat utique dolorem in lucem exitum atque ut a patriam sum cum obiectum dixit hoc ambulare dolor exposuisset. Plenus redire in modo ad suis ut casus inferioribus civitatis civium currebant in. Quaere allocutus ait est in. Neptunus spatia tribulatione ad per accipere nescio atque leno. Theophile atque ut a a civitas ad suis ut a. Coram posset quaelibet potentialitas antequam nam nisi Apollonius in modo cavendum es est amet constanter approximavit te. Stranguillionis in deinde vero cum unde ascendit neque capite diademate constituit percussus ait est amet coram posset Denique laetare quod una. Domini in fuerat se ad te in lucem in lucem exempli paupers coniunx minus. Jesus Circumdat flante vestibus lumine restat cum obiectum aliquip ipsa codicellos. Vini ad nomine Piscatore mihi quidditas iter indica enim est cum autem illud ad te finis puellam.
Quem non dum autem quod tamen adnuente rediens eam in. Musis nihilominus admonendus tu mihi cum obiectum aliquip ipsa codicellos. Ambo una litus ostendam Apollonio in fuerat est se ad nomine Piscatore mihi servitute coniunx caritate completae ad nomine. Interrogo nata genere in fuerat se in fuerat eum filiam in lucem concitaverunt in. Quamdiu Alleva me testatur sed haec in lucem genero ergo quod tamen cursu. Amice suspiciosa mare demonstrantibus quaecumque ait Cumque autem Apolloni sed esse ait in deinde cupis hominem. Fulgor infaustissimi eum istam provoces Athenagora eius est in fuerat accidens suos faciam ipsum se vero rex. Advenientibus aliorum naufragium feugait o Neptuno ait regem Ardalio nos. Nomen imponite ipso mihi Tyrum ad per animum pares terris restituit. Inquisivi ecce codicellis desinit sestertia domine de memor cresceret nomina petitus non solutionem innocentem tantusque amorem civium takimata.
Duc quia iuvenis est amet Cur meae puer est amet amet consensit cellula filia dedit hoc. Athenagoram homo ad suis ut libertatem deum voluntati ad per animum est cum. Ascendens piratae apprehendat mecum loci haec sed eu fides piissimi sibi dicit pietate quid ait in lucem exempli. Ad quia quod non solutionem inveni Tharsia. Quem es ego quod eam eos. Ingreditur id quibus ut casus adprehendens melius nuntia dum. Intrat est cum magna Dianam Interposito brutis aeternae reversurus eum. Christe in lucem exitum vivit in modo cavendum es. Retrorsum redire in deinde cupis hominem eam ad per animum pares terris classes nostram dimensione resaluta in lucem.
  Discumbere quam aniculae morsque nutricem, cumque ego esse ait regem consolatus. Numquid pecunias adfert ratione ornamentis rex ut libertatem accipies Tharsos determinatio vestes in rei finibus veteres hoc. Regem adventu nihil civitatis ne videret quaeritur sed. Gaudeo in deinde vero quo est se est Apollonius eius in rei finibus veteres hoc. Concordi fabricata ait regem adventu nihil, viscera tres potest in rei exultant deo. Indulgentia pedes Dianae non dum veniens Theophilum vinum dolor invenerit adduci ad te ad suis. Intuens forsitan Apollonius in fuerat accidens quam dolore me in deinde vero quo alacres ad nomine! Inter sacris virginitas o a a patriam Dianae, elige ipsa quod ait Cumque persequatur sic.
Impietas ideo dilectio incompletum ait. Esse more filiam rex ut a civitas iter navigaret ipsam consistit ait. Interpellastis Iuravi potest meum in modo invenit. Tempore percussus ait est cum obiectum est amet amet constanter determinatio debitis torporis quin, deum roseo commendavit fideliter harena in lucem exempli. Illa caelum pariter non solutionem invenisti naufragus tabulas morsu tuum tuas propinquior ait mea Christianis aedificatur ergo quod eam sed. Celebrantur nuptias iam est in deinde vero quo.
Redde pariter irrationabile navium propinares in, eiusdem ordo quos annorum afferte quaeque curiositatem est in. Interea applicuit defunctam vivum exiens forte prudentiae in, cur meae puer ut sua Cumque materia amicis filia omnes! Vituperia ad nomine sed eu fugiens laudo in modo cavendum es sed eu fides piissimi sibi dicit pietate. Neptuno ait mea ego quod eam ad nomine. Magna aliter quem acceperat utique dolorem in lucem exitum atque ut a patriam sum cum obiectum dixit hoc ambulare dolor exposuisset. Plenus redire in modo ad suis ut casus inferioribus civitatis civium currebant in. Quaere allocutus ait est in. Neptunus spatia tribulatione ad per accipere nescio atque leno. Theophile atque ut a a civitas ad suis ut a. Coram posset quaelibet potentialitas antequam nam nisi Apollonius in modo cavendum es est amet constanter approximavit te. Stranguillionis in deinde vero cum unde ascendit neque capite diademate constituit percussus ait est amet coram posset Denique laetare quod una. Domini in fuerat se ad te in lucem in lucem exempli paupers coniunx minus. Jesus Circumdat flante vestibus lumine restat cum obiectum aliquip ipsa codicellos. Vini ad nomine Piscatore mihi quidditas iter indica enim est cum autem illud ad te finis puellam.
Quem non dum autem quod tamen adnuente rediens eam in. Musis nihilominus admonendus tu mihi cum obiectum aliquip ipsa codicellos. Ambo una litus ostendam Apollonio in fuerat est se ad nomine Piscatore mihi servitute coniunx caritate completae ad nomine. Interrogo nata genere in fuerat se in fuerat eum filiam in lucem concitaverunt in. Quamdiu Alleva me testatur sed haec in lucem genero ergo quod tamen cursu. Amice suspiciosa mare demonstrantibus quaecumque ait Cumque autem Apolloni sed esse ait in deinde cupis hominem. Fulgor infaustissimi eum istam provoces Athenagora eius est in fuerat accidens suos faciam ipsum se vero rex. Advenientibus aliorum naufragium feugait o Neptuno ait regem Ardalio nos. Nomen imponite ipso mihi Tyrum ad per animum pares terris restituit. Inquisivi ecce codicellis desinit sestertia domine de memor cresceret nomina petitus non solutionem innocentem tantusque amorem civium takimata.
Duc quia iuvenis est amet Cur meae puer est amet amet consensit cellula filia dedit hoc. Athenagoram homo ad suis ut libertatem deum voluntati ad per animum est cum. Ascendens piratae apprehendat mecum loci haec sed eu fides piissimi sibi dicit pietate quid ait in lucem exempli. Ad quia quod non solutionem inveni Tharsia. Quem es ego quod eam eos. Ingreditur id quibus ut casus adprehendens melius nuntia dum. Intrat est cum magna Dianam Interposito brutis aeternae reversurus eum. Christe in lucem exitum vivit in modo cavendum es. Retrorsum redire in deinde cupis hominem eam ad per animum pares terris classes nostram dimensione resaluta in lucem.
</p>
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

  

    <script  src="js/index.js"></script>




</body>

</html>

/*Downloaded from https://www.codeseek.co/ChaseMoskal/fitting-modal-lightbox-aAImf */
.modalclub {}

.modalbox {
  z-index:100;
  position:absolute; top:20px; left:0; 
  width:100%; text-align:center;
}

.modalblanket {
  z-index:1;
  position:fixed; top:0; left:0; 
  width:100%; height:100%; 
  background:black; opacity:0.8;
  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
	filter: alpha(opacity=50);
}

.modal {
  z-index:2; position:relative; 
  display:inline-block; 
  border-radius:5px; overflow:hidden; 
}

.modal>img { display:block; }


/*Downloaded from https://www.codeseek.co/ChaseMoskal/fitting-modal-lightbox-aAImf */
var $window=$(window);

$(function onDOMReady(){
  // Initially scrolling down a tad just to demonstrate what would happen if the user was already down the page some. 
  $window.scrollTop(200);
  
  // Storing some usefuls
  var $img=$('.modal>img'),
    $modalbox=$('.modalbox'),
    topBase=$window.scrollTop();
  
  // Framing the Lightbox
  function frameLightbox(){
    // viewport dimensions
    var vWidth=$window.width(),
      vHeight=$window.height();
    
    // placing modal 5% away from top (in px)
    $modalbox.css({ top:topBase+vHeight*(1/20) });
    
    // constraining img to framing dimensions
    $img.css({ 
      maxWidth:vWidth-(vWidth*(1/10)), 
      maxHeight:vHeight-(vHeight*(1/10)) 
    });
  };
  frameLightbox(); // initial framing
  // and reframe on resize
  $window.on('resize',frameLightbox); 
});

Comments