Javascript 雪花:暂停时开始飘落,触摸“雪花”时将其清除;地面“;

Javascript 雪花:暂停时开始飘落,触摸“雪花”时将其清除;地面“;,javascript,html,Javascript,Html,我的javascript程序有一些问题。我正在尝试做一个java脚本函数,使小点落下,产生雪的错觉 我想要两件我不知道该怎么做的事情: 我想用一定的时间间隔让雪降下来。我是说fst从一个点到另一个点再到另一个点 我希望当一个点接触到页面的末尾时,它会重置并再次落下 看看我的代码: var x=[]; 变量y=-20; var yplus=[]; var xplus=[];//这里是变量。 函数fallstart(){//设置开始处的雪位置 var btn=document.getEleme

我的javascript程序有一些问题。我正在尝试做一个java脚本函数,使小点落下,产生雪的错觉

我想要两件我不知道该怎么做的事情:

  • 我想用一定的时间间隔让雪降下来。我是说fst从一个点到另一个点再到另一个点
  • 我希望当一个点接触到页面的末尾时,它会重置并再次落下
看看我的代码:

var x=[];
变量y=-20;
var yplus=[];
var xplus=[];//这里是变量。
函数fallstart(){//设置开始处的雪位置
var btn=document.getElementsByClassName(“snow”);
对于(i=0;i

• 
• 
• 
• 
• 
• 
• 
• 
• 

以下是您可以做的几件事:

  • 重复
    fall()
    方法时,请检查元素的高度。如果它比窗口大,则删除该元素(或者可以选择从顶部重新开始)。就这样做吧:

    //此功能更新雪地位置
    函数fall(){
    对于(i=0;iwindowHeight){
    雪花[i].remove();
    }
    }
    }
    
  • 您可以从以下站点的帖子中获得javascript窗口高度:

    var windowHeight=(函数(){
    var w=窗口,
    d=文件,
    e=d.documentElement,
    g=d.getElementsByTagName('body')[0],
    x=w.innerWidth | | e.clientWidth | | g.clientWidth,
    y=w.内部高度| | e.倾斜度| | g.倾斜度;
    返回y
    })();
    
  • 而且,不需要用每个方法在dom中搜索
    .snow
    元素。只需在开始时将其保存下来,如下所示:

    var snowflakes=document.getElementsByClassName(“雪花”)
    
  • 尽量避免使用突兀的javascript,因此不要依赖body元素启动javascript文件,只需将侦听器直接放在javascript中,如下所示:

    window.onload=keep
    
  • 此外,无需为ever snow元素重复内联样式

    而不是这个

    使用这个

    .snow{
    颜色:红色;
    位置:绝对位置;
    宽度:8px;
    高度:8px;
    顶部:-3px;
    左:0px
    }
    
  • 无需管理多个阵列。DOM元素只是带有DOM内容的javascript对象。如果你想扩展你自己的属性,你可以用额外的信息来扩展它们注意:这会污染您不拥有的元素的属性,但如果您真的在意,只需为它们命名名称空间即可

    函数setDelta(){
    对于(i=0;i
    现在每个元素都知道它应该移动多少

  • 下面是一个堆栈片段:
    //全局变量
    var snowflakes=document.getElementsByClassName(“雪花”)
    变量screenSize=(函数(){
    var w=窗口,
    d=文件,
    e=d.documentElement,
    g=d.getElementsByTagName('body')[0];
    返回{
    宽度:w.innerWidth | | e.clientWidth | | g.clientWidth,
    高度:w.innerHeight | | e.clientHeight | | g.clientHeight
    }
    })();
    //开始
    window.onload=函数startSnowfall(){
    setInitialValues();
    设定间隔(秋季,20);
    }
    函数setInitialValues(){
    对于(i=0;iscreenSize.height){
    //雪。移除();
    设置初始值(雪);
    }
    }
    }
    .snow{
    颜色:红色;
    位置:绝对位置;
    宽度:8px;
    高度:8px;
    顶部:-3px;
    左:0px
    }
    •
    • 
    • 
    • 
    • 
    • 
    • 
    • 
    
    @Kritner
    onload=“keep()”
    启动脚本。该代码使小点落下。你可以检查一下。lolol我把它贴到了一个提琴上,但忘了准备一份文件。如果你想参考它,这里有你的问题: