我是靠谱客的博主 优雅画板,最近开发中收集的这篇文章主要介绍JS实现下落的树叶特效OVER,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
用以上四种树叶图片在页面中随机生成大小、位置、下落速度不同的特效,点击页面任何位置,实现下落效果。具体代码如下:

测试代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        img{
            position: absolute;
        }
    </style>
</head>
<body>
    <!-- 
            叶子 
            属性:  大小(100-150)  位置  图片  速度
            方法:  初始化  下落 
    -->
    <script>
        var screenWidth = document.documentElement.clientWidth || document.body.clientWidth;
        var screenHeight = document.documentElement.clientHeight || document.body.clientHeight;
        function Leaf(){
            this.width = Math.random()*50+100;
            this.pos = {
                left:Math.random()*(screenWidth-this.width),
                top:0
            }
            this.speed = 5;
            var oImg = new Image();
            oImg.src = "img/" +( Math.floor(Math.random()*4)+1) + ".png";
            oImg.style.width = this.width + "px";
            oImg.style.left = this.pos.left + "px";
            oImg.style.top = this.pos.top + "px";
            this.img = oImg;   

        }
        Leaf.prototype.init = function(){//插入到页面中
            document.body.appendChild(this.img);
        }
        Leaf.prototype.fall = function(){
            var that = this;  //因为定时器中this指向window 所以先将this存在that中,用来在定时器中使用
            setTimeout(function(){ //延迟不同时间下落
                this.timer = setInterval(function(){ //定时器中this指向Window
                    if(that.img.offsetTop >= screenHeight-that.img.offsetHeight){ //判断是都到达底部
                        clearInterval(that.timer);
                    }else{
                        that.img.style.top = that.img.offsetTop + that.speed +"px";
                    }
                },10);
            },Math.random()*500);
        }
        var arr = [];
        for(var i=0;i<5;i++){
            var leaf = new Leaf();
            arr.push(leaf);
            leaf.init();
        }
        document.onclick = function(){
            for(var j=0;j<arr.length;j++){
                arr[j].fall();
            }
        }
        

    </script>
</body>
</html>

测试结果:

在这里插入图片描述
很明显图片的大小,位置与
第一次明显不同~

OVER

欢迎大家前来和我讨论学习!!!❤

最后

以上就是优雅画板为你收集整理的JS实现下落的树叶特效OVER的全部内容,希望文章能够帮你解决JS实现下落的树叶特效OVER所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部