zoukankan      html  css  js  c++  java
  • 【案例】雪花飘落效果

    使用DOM节点操作
    1、周期性创建雪花
    setInterval()
    2、雪花出现的位置随机
    function rand(m,n){return Math.floor(Math.random() * (n-m+1)) + m}
    document.documentElement.clientWidth || document.body.clientWidth
    3、控制雪花向下飘(移动的步径)
    var step = 1;
    4、移除超出窗口高度的雪花元素
    document.documentElement.clientHeight || document.body.clientHeight

    ==================具体代码如下所示======================

    <!DOCTYPE html>

    <html lang="en">

    <head>

            <meta charset="UTF-8">

            <title>雪花飘落特效实现</title>

            <style>

                     *{

                             margin:0;

                             padding:0;

                     }

                     body{

                             100%;

                             height: 100%;

                             overflow: hidden;

                             background-image: url('./images/snow.jpg');

                     }

            </style>

    </head>

    <body>

    </body>

    <script>

            //获取随机整数函数

            function rand(m,n){

                     return Math.floor(Math.random() * (n - m + 1)) + m;

            }

            function setStyle(snowDiv){

                     snowDiv.innerHTML = "❄";

                     snowDiv.style.color = "#fff";

                     snowDiv.style.position = "absolute";

                     snowDiv.style.left = rand(0,document.documentElement.clientWidth || document.body.clientWidth) + 'px';

                     snowDiv.style.top = rand(0,200) + 'px';

                     snowDiv.style.fontSize = rand(16,50) + 'px';

                     snowDiv.style.opacity = Math.random();

                     document.body.appendChild(snowDiv);

            }

            //周期性创建雪花

            setInterval(function(){

                     var snowDiv = document.createElement('div');

                     setStyle(snowDiv);

                     //设置雪花飘落的步径

                     var step = 1;

                     var run = setInterval(function(){

                             var newTop = snowDiv.offsetTop + step;

                             if(newTop  >= document.documentElement.clientHeight || document.body.clientHeight){

                                      document.body.removeChild(snowDiv);

                                      clearInterval(run);

                             }

                             snowDiv.style.top = newTop + 'px';

                     },20)

            },100)

    </script>

    </html>

  • 相关阅读:
    [置顶] flex4事件监听与自定义事件分发(三)
    不要通过终止进程的方式清理内存
    两个关于XML解析报错问题小记
    HDU H204 阿牛的EOF牛肉串
    <Win32_8>由浅入深——滚动条
    设计模式19---设计模式之状态模式(State)(行为型)
    NetworkX学习笔记-5-NetworkX中怎样对多个网络赋属性,并根据属性排序
    OpenRisc-41-or1200的cache模块分析
    Hibernate 入门的第一个程序
    NDK GDB 中打印vector , vector<vector <> >
  • 原文地址:https://www.cnblogs.com/sherryStudy/p/dom_snow.html
Copyright © 2011-2022 走看看