İçeriğe atla

MediaWiki:Gadget-Slideshow.js

Vikipedi, özgür ansiklopedi

Not: Sayfayı kaydettikten sonra değişiklikleri görebilmek için tarayıcınızın önbelleğinizi temizlemeniz gerekir. Google Chrome, Firefox, Microsoft Edge ve Safari: ⇧ Shift tuşuna basılı tutun ve Yeniden Yükle araç çubuğu düğmesine tıklayın. Ayrıntılar ve diğer tarayıcılara yönelik yönergeler için Vikipedi:Önbelleğinizi atlayın sayfasını inceleyin.

//<pre>

var slideshow =
{
 showwin : null,
 showimg : null,
 list : null,
 current  : 0,

 nextImage : function() 
 {
  with(slideshow)
  {
   if( showwin != null && showwin.document != null )
   {
    showimg.src = '//commons.wikimedia.org/w/thumb.php?w=800&f='+encodeURIComponent(slideshow.list[slideshow.current]);
    current++;
    if( current >= list.length ) current = 0;
    window.setTimeout("slideshow.nextImage()",3000);
   }
  }
 },

 showButton : function() { this.startButton.style.visibility = 'visible'; },
 hideButton : function() { this.startButton.style.visibility = 'hidden'; },

 // cross-browser event attachment (John Resig)
 // http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
 addEvent : function ( obj, type, fn )
 {
  if (obj.addEventListener)
   obj.addEventListener( type, fn, false );
  else if (obj.attachEvent)
  {
   obj["e"+type+fn] = fn;
   obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
   obj.attachEvent( "on"+type, obj[type+fn] );
  }
 },

 start : function( e )
 {
  slideshow.list = new Array();
  slideshow.current = 0;

  if( typeof(this.gallery) != 'undefined' )
  {
   slideshow.showwin = window.open('', 'showwin', 'left=0,top=0,width=' + screen.width + ',height=' + screen.height + ',toolbar=0,resizable=0,fullscreen=1');

   var divs = this.gallery.getElementsByTagName('div');
   for( var key in divs ) 
   {
    if( divs[key].className == 'thumb' && 
        divs[key].firstChild.tagName == 'A' )
    {
       slideshow.list.push( divs[key].firstChild.title.substring(6) );
    }
   }

   slideshow.showwin.document.open('text/html');
   slideshow.showwin.document.write('<html><body><table border="0" width="100%" height="100%"><tr><td valign="center" align="center"><img id="showimg"></td></tr></table></body></html>');
   slideshow.showwin.document.close();

   slideshow.showimg = slideshow.showwin.document.getElementById('showimg');
   slideshow.nextImage();
  }
 },

 install : function()  
 {
  var galleries = document.getElementsByTagName('table');
  var cells;
  var button;

  for( var key in galleries )
  {
   if( galleries[key].className == 'gallery' )
   {
    cells = galleries[key].getElementsByTagName('div');
    if( cells.length > 0 )
    {
     button = document.createElement('div');
     button.style.border = '1px solid gray';
     button.style.position = 'absolute';
     button.style.padding = '0.5em';
     button.style.backgroundColor = '#ddffdd';
     button.style.top = '0.5em';
     button.style.left = '0.5em';
     button.style.cursor = 'pointer';
     button.style.visibility = 'hidden';
     button.gallery = galleries[key];

     button.appendChild( document.createTextNode( 'Slideshow' ) );
     slideshow.addEvent( button, 'click', slideshow.start );

     galleries[key].startButton = button;
     slideshow.addEvent( galleries[key], 'mouseover', slideshow.showButton );
     slideshow.addEvent( galleries[key], 'mouseout', slideshow.hideButton );

     cells[0].style.position = 'relative';
     cells[0].insertBefore( button, cells[0].childNodes[0] );
    }

   }
  }

 }
}

$(slideshow.install);
//</pre>