Skip to content

Instantly share code, notes, and snippets.

@hirejordansmith
Last active December 6, 2023 22:28
Show Gist options
  • Star 19 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hirejordansmith/1ac659aadc1d720f505b28a1540d6547 to your computer and use it in GitHub Desktop.
Save hirejordansmith/1ac659aadc1d720f505b28a1540d6547 to your computer and use it in GitHub Desktop.
How to show images and video in Magnific Popup Gallery
@a-charafeddine
Copy link

Thank you so much you saved me :D

@imcarlosdev
Copy link

Amazing, thank you for share!

@gprobst
Copy link

gprobst commented Aug 7, 2017

Updated: Got it working. Thanks!

I for the life of me can't seem to get mixed types to work. Is there any way you could post a sample of the HTML that would go along with this?

@rahuldev345
Copy link

Thanks

@woutercox
Copy link

Thank you, first piece code that actually worked for the site I'm working on!

@Hatteron
Copy link

Please show html expample

@sunzxs
Copy link

sunzxs commented May 19, 2018

I've corrected the code and made HTML example: https://github.com/sunzxs/magnific-popup-image-and-video-slider

@rsinfoweb
Copy link

Hi, Sunzxs
Thanks for sharing example..
I have download all files & run example.
But I don't have open video popup.
videopopup
can you please share update or any solutions for that.
Thanks advanced.

@abbas13375
Copy link

thanks man . very helpfull ...

@zdimaz
Copy link

zdimaz commented Aug 1, 2019

<script>
$(document).ready(function() {

    $('.popup-gallery').magnificPopup({
        delegate: 'a',
        type: 'image',
        gallery: {
            enabled: true,
            navigateByImgClick: true,
            preload: [0, 1] // Will preload 0 - before current, and 1 after the current image
        },
        callbacks: {

            elementParse: function(item) {

                if(item.el[0].className == 'video') {
                    item.type = 'iframe';
                } else {
                    item.type = 'image';
                }
            }

        },

    });

});
</script>

Are JQ to change this to:

	    callbacks: {
	      	elementParse: function(item) {
	        	if(item.el.hasClass("multiple_gallery_video")){
	        		console.log("multiple_gallery_video")
	        		item.type = 'iframe';
	        	}else {
	                item.type = 'image';
	            }
	            console.log(item); // Do whatever you want with "item" object
	      	}
	    },

This works

@joankent
Copy link

I've corrected the code and made HTML example: https://github.com/sunzxs/magnific-popup-image-and-video-slider

thanks, you are the best!

@aliosys
Copy link

aliosys commented Nov 18, 2020

Thanks.! it worked .!

@javiersnipe
Copy link

<script>
$(document).ready(function() {

    $('.popup-gallery').magnificPopup({
        delegate: 'a',
        type: 'image',
        gallery: {
            enabled: true,
            navigateByImgClick: true,
            preload: [0, 1] // Will preload 0 - before current, and 1 after the current image
        },
        callbacks: {

            elementParse: function(item) {

                if(item.el[0].className == 'video') {
                    item.type = 'iframe';
                } else {
                    item.type = 'image';
                }
            }

        },

    });

});
</script>

Are JQ to change this to:

	    callbacks: {
	      	elementParse: function(item) {
	        	if(item.el.hasClass("multiple_gallery_video")){
	        		console.log("multiple_gallery_video")
	        		item.type = 'iframe';
	        	}else {
	                item.type = 'image';
	            }
	            console.log(item); // Do whatever you want with "item" object
	      	}
	    },

This works

Thank you so much !!! You saved me!

@GZ-GENUX
Copy link

How to add titleSrc to iframe type? Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment