• มาสร้าง Snow Effect ให้เก็บกันดีกว่า

    Date: 2010.09.03 | Category: Web Programming, ฟรี Script เทคนิคเด็ดๆ | Tags: ,

    วันนี้ เรามาสร้าง SNOW EFFECT ให้เกิดขึ้นในเว็บเรากันดีกว่า สำหรับต้อนรับลมหนาว และฤดูหนาวให้เกิดขึั้นเล็กๆน้อยๆ ในเว็บเรา เพื่อสร้างจุดสนใจ และตอบรับกระแสได้พอสมควร

    ง่ายๆ เพียงคุณ COPY รูปที่คุณสนใจแค่คลิกขวา แล้ว Save Picture As … ไปไว้ในพื้นที่เว็บคุณนะครับ


    แล้ว COPY Code ด้านล่างไปไว้ระหว่าง <Body> ครับ แต่ง่ายกว่านั้น ถ้าอยากเข้าทุกหน้าก็ไปไว้ใน include File ที่คุณใช้ในเทคนิค SSI ได้ครับ สรุปว่าไว้ระหว่าง Tag <Body> ครับ

    <script type=”text/javascript”>

    /******************************************
    * Snow Effect Script- By Altan d.o.o. (http://www.altan.hr/snow/index.html)
    * Visit code library (http://www.twebmaster.com/) for full source code
    ******************************************/

    // แก้ Path Image ตรงนี้นะครับ
    var snowsrc=”snow.gif”
    // Configure below to change number of snow to render
    var no = 10;
    // 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 snowdistance = “pageheight”;

    ///////////Stop Config//////////////////////////////////

    var ie4up = (document.all) ? 1 : 0;
    var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

    function iecompattest(){
    return (document.compatMode && document.compatMode!=”BackCompat”)? document.documentElement : document.body
    }

    var dx, xp, yp; // coordinate and position variables
    var am, stx, sty; // amplitude and step variables
    var i, doc_width = 800, doc_height = 600;

    if (ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
    } else if (ie4up) {
    doc_width = iecompattest().clientWidth;
    doc_height = iecompattest().clientHeight;
    }

    dx = new Array();
    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 = 0; // set coordinate variables
    xp = Math.random()*(doc_width-50); // set position variables
    yp = Math.random()*doc_height;
    am = Math.random()*20; // set amplitude variables
    stx = 0.02 + Math.random()/10; // set step variables
    sty = 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
    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 += sty;
    if (yp > doc_height-50) {
    xp = Math.random()*(doc_width-am-30);
    yp = 0;
    stx = 0.02 + Math.random()/10;
    sty = 0.7 + Math.random();
    }
    dx += stx;
    document.getElementById(“dot”+i).style.top=yp+”px”;
    document.getElementById(“dot”+i).style.left=xp + am*Math.sin(dx)+”px”;
    }
    snowtimer=setTimeout(“snowIE_NS6()”, 10);
    }

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

    if (ie4up||ns6up){
    snowIE_NS6();

    if (hidesnowtime>0)
    setTimeout(“hidesnow()”, hidesnowtime*1000)
    }

    </script>