jquery.fancybox-media.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*!
  2. * Media helper for fancyBox
  3. * version: 1.0.0
  4. * @requires fancyBox v2.0 or later
  5. *
  6. * Usage:
  7. * $(".fancybox").fancybox({
  8. * media: {}
  9. * });
  10. *
  11. * Supports:
  12. * Youtube
  13. * http://www.youtube.com/watch?v=opj24KnzrWo
  14. * http://youtu.be/opj24KnzrWo
  15. * Vimeo
  16. * http://vimeo.com/25634903
  17. * Metacafe
  18. * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
  19. * http://www.metacafe.com/watch/7635964/
  20. * Dailymotion
  21. * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
  22. * Twitvid
  23. * http://twitvid.com/QY7MD
  24. * Twitpic
  25. * http://twitpic.com/7p93st
  26. * Instagram
  27. * http://instagr.am/p/IejkuUGxQn/
  28. * http://instagram.com/p/IejkuUGxQn/
  29. * Google maps
  30. * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
  31. * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
  32. * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
  33. */
  34. (function ($) {
  35. //Shortcut for fancyBox object
  36. var F = $.fancybox;
  37. //Add helper object
  38. F.helpers.media = {
  39. beforeLoad : function(opts, obj) {
  40. var href = obj.href || '',
  41. type = false,
  42. rez;
  43. if ((rez = href.match(/(youtube\.com|youtu\.be)\/(v\/|u\/|embed\/|watch\?v=)?([^#\&\?]*).*/i))) {
  44. href = '//www.youtube.com/embed/' + rez[3] + '?autoplay=1&autohide=1&fs=1&rel=0&enablejsapi=1';
  45. type = 'iframe';
  46. } else if ((rez = href.match(/vimeo.com\/(\d+)\/?(.*)/))) {
  47. href = '//player.vimeo.com/video/' + rez[1] + '?hd=1&autoplay=1&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1';
  48. type = 'iframe';
  49. } else if ((rez = href.match(/metacafe.com\/watch\/(\d+)\/?(.*)/))) {
  50. href = '//www.metacafe.com/fplayer/' + rez[1] + '/.swf?playerVars=autoPlay=yes';
  51. type = 'swf';
  52. } else if ((rez = href.match(/dailymotion.com\/video\/(.*)\/?(.*)/))) {
  53. href = '//www.dailymotion.com/swf/video/' + rez[1] + '?additionalInfos=0&autoStart=1';
  54. type = 'swf';
  55. } else if ((rez = href.match(/twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i))) {
  56. href = '//www.twitvid.com/embed.php?autoplay=0&guid=' + rez[1];
  57. type = 'iframe';
  58. } else if ((rez = href.match(/twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i))) {
  59. href = '//twitpic.com/show/full/' + rez[1];
  60. type = 'image';
  61. } else if ((rez = href.match(/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i))) {
  62. href = '//' + rez[1] + '/p/' + rez[2] + '/media/?size=l';
  63. type = 'image';
  64. } else if ((rez = href.match(/maps\.google\.com\/(\?ll=|maps\/?\?q=)(.*)/i))) {
  65. href = '//maps.google.com/' + rez[1] + '' + rez[2] + '&output=' + (rez[2].indexOf('layer=c') ? 'svembed' : 'embed');
  66. type = 'iframe';
  67. }
  68. if (type) {
  69. obj.href = href;
  70. obj.type = type;
  71. }
  72. }
  73. }
  74. }(jQuery));