MediaWiki:SnowEffect.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
Dufo (Diskussion | Beiträge)
noch mehr Flocken :)
So, neuer schnee, neues glück (altes skript nutze document.write und das beisst sich mit FF und IE11 bei asynchrinem laden)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
/******************************************
/**
* Snow Effect Script- By Altan d.o.o. (http://www.altan.hr/snow/index.html)
* jQuery snow effects.
* Visit Dynamic Drive DHTML code library (http://www.dynamicdrive.com/) for full source code
*
* Last updated Nov 9th, 05' by DD. This notice must stay intact for use
* This is a heavily modified, jQuery-adapted, browser-agnostic version of
******************************************/
* "Snow Effect Script" by Altan d.o.o. (http://www.altan.hr/snow/index.html).
 
*
  //Configure below to change URL path to the snow image
* Dustin Oprea (2011)
  var snowsrc="http://kamelopedia.mormo.org/images/8/86/Schneeflocke.png"
*/
  // Configure below to change number of snow to render
 
  var no = 30;
function __ShowSnow(settings)
  // Configure whether snow should disappear after x seconds (0=never):
{
  var hidesnowtime = 0;
 
  // Configure how much snow should drop down before fading ("windowheight" or "pageheight")
    var snowsrc = settings.SnowImage;
  var snowdistance = "pageheight";
    var no = settings.Quantity;
 
    var dx, xp, yp;    // coordinate and position variables
    var am, stx, sty;  // amplitude and step variables
    var i;
 
    var doc_width = $(window).width() - 10;
    var doc_height = $(window).height();
 
    dx = [];
    xp = [];
    yp = [];
    am = [];
    stx = [];
    sty = [];
    flakes = [];
    for (i = 0; i < no; ++i)
    {
        dx[i] = 0;                        // set coordinate variables
        xp[i] = Math.random()*(doc_width-50);  // set position variables
        yp[i] = Math.random()*doc_height;
        am[i] = Math.random()*20;        // set amplitude variables
        stx[i] = 0.02 + Math.random()/10; // set step variables
        sty[i] = 0.7 + Math.random();    // set step variables
 
        var flake = $("<div />");
 
        var id = ("dot" + i);
        flake.attr("id", id);
        flake.css({
                    position: "absolute",
                    zIndex: i,
                    top: "15px",
                    left: "15px"
                });
 
        flake.append("<img src='" + snowsrc + "'>");
        flake.appendTo("body");
 
        flakes[i] = $("#" + id);
    }
 
    var animateSnow;
    animateSnow = function()
    { 
        for (i = 0; i < no; ++ i)
        {
            // iterate for every dot
            yp[i] += sty[i];
            if (yp[i] > doc_height - 50)
            {
                xp[i] = Math.random() * (doc_width - am[i] - 30);
                yp[i] = 0;
                stx[i] = 0.02 + Math.random() / 10;
                sty[i] = 0.7 + Math.random();
            }
     
            dx[i] += stx[i];
            flakes[i].css("top", yp[i] + "px");
            flakes[i].css("left", (xp[i] + am[i] * Math.sin(dx[i])) + "px");
        }


///////////Stop Config//////////////////////////////////
        snowtimer = setTimeout(animateSnow, 10);
    };


  var ie4up = (document.all) ? 1 : 0;
function hidesnow()
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
    {
if(window.snowtimer)
            clearTimeout(snowtimer)


function iecompattest(){
        for (i = 0; i < no; i++)
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
            flakes[i].hide();
}
}
    animateSnow();
if (settings.HideSnowTime > 0)
    setTimeout(hidesnow, settings.HideSnowTime * 1000)
}


  var dx, xp, yp;    // coordinate and position variables
(function($) {
  var am, stx, sty;  // amplitude and step variables
    $.fn.snow = function(options) {
  var i, doc_width = 800, doc_height = 600;
    
    
  if (ns6up) {
     var settings = $.extend({
     doc_width = self.innerWidth;
            SnowImage:      undefined,
    doc_height = self.innerHeight;
            Quantity:      30,
  } else if (ie4up) {
            HideSnowTime:   0
    doc_width = iecompattest().clientWidth;
        }, options);
    doc_height = iecompattest().clientHeight;
   }


  dx = new Array();
     __ShowSnow(settings);
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
  snowsrc=(snowsrc.indexOf("dynamicdrive.com")!=-1)? "snow.gif" : snowsrc
  for (i = 0; i < no; ++ i) { 
    dx[i] = 0;                        // set coordinate variables
    xp[i] = Math.random()*(doc_width-50);  // set position variables
     yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;        // set amplitude variables
    stx[i] = 0.02 + Math.random()/10; // set step variables
    sty[i] = 0.7 + Math.random();    // set step variables
if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\"http://dynamicdrive.com\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/div>");
      } else {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
      }
    }
  }


  function snowIE_NS6() {  // IE and NS6 main animation function
     return this;
     doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
    for (i = 0; i < no; ++ i) {  // iterate for every dot
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
      }
      dx[i] += stx[i];
      document.getElementById("dot"+i).style.top=yp[i]+"px";
      document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px"; 
    }
    snowtimer=setTimeout("snowIE_NS6()", 10);
   }
   }


function hidesnow(){
})(jQuery);
if (window.snowtimer) clearTimeout(snowtimer)
for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden"
}


if (ie4up||ns6up){
$(function() {
     snowIE_NS6();
     $(document).snow({ SnowImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAMAAAAR8Wy4AAABI1BMVEUAAAAiHBhfWFoWFRQYFxcuJjANCg8UEhMMCAqzrrBybnIrIyZpY2eBfYMkICFtanpEO0LJxcylnZ6jnaArIygxKzczMjTDwMg2NDdgLh5LRE49OD91cnpLOTw0MjYwLTJlXGV6eYOCgIuxrLVRUGFsaG1yamvMxstQTmDKxco2IixdXF97c310bXE8ODumn6Hc2uF9dXrQzdS3tL+vqqpZV1vS0NZLR1BrZ2uGgoevqrS5sra3sr/Ev8qXkpm2sLqCfoOzrrthVWG2r7OkoKN2dnudmp+Xkpixq6+Hg5Gopa6uq7ZAOj2in6RqY2p0cnvEwMzLx9LAvsvf2+bk4OnS0ODSz927ucTd2uK/u8PRy9fY1+XY1uS+usHTz9vV0t3FwMt+sHLFAAAAWXRSTlMAG3UXDhYCCAHLjwx/hx95IejEwBEZPvZJH0U5izEtJmiPmNRfgYv2XfYdcHx4U8H9hPb8xGv4TYat9dbx/sX7pexg0sOascXGnu/6CLtykP///////////p6CsdgAAADISURBVAjXJc3VjsJQFIXhVWqnhrvLKOODS3C30BYJ3vd/CprDl+yLf98s2FIDRhUFlfEl8cB0xkOByK1antAWi9ImTEhwI0kcKDamt1mufgyyNJ0KlJIlV60PDqITwLMKhAumuf8GHHH7Xt5/vBf9fNIPXt+r7MCby/NbDlnbrRX6Nz2uJ+Dzj+ej3d2uWfEHvjQAbj/QM7IZI02guOlOJGHMOXG2TkRA8f3JLaMs4lepkacPgc/mVkA6Nw0IoGLLlAZoyVHUjjvvCRiNrlrXAAAAAABJRU5ErkJggg==" });
if (hidesnowtime>0)
});
setTimeout("hidesnow()", hidesnowtime*1000)
}

Aktuelle Version vom 29. Januar 2014, 23:49 Uhr

/**
 * jQuery snow effects.
 *
 * This is a heavily modified, jQuery-adapted, browser-agnostic version of 
 * "Snow Effect Script" by Altan d.o.o. (http://www.altan.hr/snow/index.html).
 *
 * Dustin Oprea (2011)
 */

function __ShowSnow(settings)
{

    var snowsrc = settings.SnowImage;
    var no = settings.Quantity;

    var dx, xp, yp;    // coordinate and position variables
    var am, stx, sty;  // amplitude and step variables
    var i; 

    var doc_width = $(window).width() - 10;
    var doc_height = $(window).height();

    dx = [];
    xp = [];
    yp = [];
    am = [];
    stx = [];
    sty = [];
    flakes = [];
    for (i = 0; i < no; ++i) 
    {
        dx[i] = 0;                        // set coordinate variables
        xp[i] = Math.random()*(doc_width-50);  // set position variables
        yp[i] = Math.random()*doc_height;
        am[i] = Math.random()*20;         // set amplitude variables
        stx[i] = 0.02 + Math.random()/10; // set step variables
        sty[i] = 0.7 + Math.random();     // set step variables

        var flake = $("<div />");

        var id = ("dot" + i);
        flake.attr("id", id);
        flake.css({
                    position: "absolute",
                    zIndex: i,
                    top: "15px",
                    left: "15px"
                });

        flake.append("<img src='" + snowsrc + "'>");
        flake.appendTo("body");

        flakes[i] = $("#" + id);
    }

    var animateSnow;
    animateSnow = function() 
    {  
        for (i = 0; i < no; ++ i) 
        {
            // iterate for every dot
            yp[i] += sty[i];
            if (yp[i] > doc_height - 50) 
            {
                xp[i] = Math.random() * (doc_width - am[i] - 30);
                yp[i] = 0;
                stx[i] = 0.02 + Math.random() / 10;
                sty[i] = 0.7 + Math.random();
            }
      
            dx[i] += stx[i];
            flakes[i].css("top", yp[i] + "px");
            flakes[i].css("left", (xp[i] + am[i] * Math.sin(dx[i])) + "px");
        }

        snowtimer = setTimeout(animateSnow, 10);
    };

	function hidesnow()
    {
		if(window.snowtimer)
            clearTimeout(snowtimer)

        for (i = 0; i < no; i++)
            flakes[i].hide();
	}
		
    animateSnow();
	if (settings.HideSnowTime > 0)
    	setTimeout(hidesnow, settings.HideSnowTime * 1000)
}

(function($) {
    $.fn.snow = function(options) {
  
    var settings = $.extend({
            SnowImage:      undefined,
            Quantity:       30,
            HideSnowTime:   0
        }, options);

    __ShowSnow(settings);

    return this;
  }

})(jQuery);

$(function() {
    $(document).snow({ SnowImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAMAAAAR8Wy4AAABI1BMVEUAAAAiHBhfWFoWFRQYFxcuJjANCg8UEhMMCAqzrrBybnIrIyZpY2eBfYMkICFtanpEO0LJxcylnZ6jnaArIygxKzczMjTDwMg2NDdgLh5LRE49OD91cnpLOTw0MjYwLTJlXGV6eYOCgIuxrLVRUGFsaG1yamvMxstQTmDKxco2IixdXF97c310bXE8ODumn6Hc2uF9dXrQzdS3tL+vqqpZV1vS0NZLR1BrZ2uGgoevqrS5sra3sr/Ev8qXkpm2sLqCfoOzrrthVWG2r7OkoKN2dnudmp+Xkpixq6+Hg5Gopa6uq7ZAOj2in6RqY2p0cnvEwMzLx9LAvsvf2+bk4OnS0ODSz927ucTd2uK/u8PRy9fY1+XY1uS+usHTz9vV0t3FwMt+sHLFAAAAWXRSTlMAG3UXDhYCCAHLjwx/hx95IejEwBEZPvZJH0U5izEtJmiPmNRfgYv2XfYdcHx4U8H9hPb8xGv4TYat9dbx/sX7pexg0sOascXGnu/6CLtykP///////////p6CsdgAAADISURBVAjXJc3VjsJQFIXhVWqnhrvLKOODS3C30BYJ3vd/CprDl+yLf98s2FIDRhUFlfEl8cB0xkOByK1antAWi9ImTEhwI0kcKDamt1mufgyyNJ0KlJIlV60PDqITwLMKhAumuf8GHHH7Xt5/vBf9fNIPXt+r7MCby/NbDlnbrRX6Nz2uJ+Dzj+ej3d2uWfEHvjQAbj/QM7IZI02guOlOJGHMOXG2TkRA8f3JLaMs4lepkacPgc/mVkA6Nw0IoGLLlAZoyVHUjjvvCRiNrlrXAAAAAABJRU5ErkJggg==" });
});