【CSS3 + 原生JS】上升的方块动态背景

GIF图有点大,网速慢的或将稍等片刻或可浏览本人的制作的demo。

Demo : 点击查看

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Glunefish</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div id="F-dynamicbg-box">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>

CSS:

    * {
        margin: 0; padding: 0; border: none; outline: 0;
    }
    body{
        width: 100vw;
        height: 100vh;
        background: url(img/bg.png) no-repeat;
        background-size: cover;
    }
    #F-dynamicbg-box {
        width: 100vw;
        height: 100vh;
        position: absolute;
        top: 0;
        left: 0;
        overflow: hidden;
    }
    #F-dynamicbg-box > div {
        z-index: -9999;
        background-color: rgba(255,255,255,.1);
        position: absolute;
        top: 105vh;
        animation: dynamicDiv 30s linear infinite;
    }
    #F-dynamicbg-box > div:nth-of-type(1) { animation-delay: 1s }
    #F-dynamicbg-box > div:nth-of-type(2) { animation-delay: 3s }
    #F-dynamicbg-box > div:nth-of-type(3) { animation-delay: 6s }
    #F-dynamicbg-box > div:nth-of-type(4) { animation-delay: 9s }
    #F-dynamicbg-box > div:nth-of-type(5) { animation-delay: 12s }
    #F-dynamicbg-box > div:nth-of-type(6) { animation-delay: 4s }
    #F-dynamicbg-box > div:nth-of-type(7) { animation-delay: 15s }
    #F-dynamicbg-box > div:nth-of-type(8) { animation-delay: 18s }
    #F-dynamicbg-box > div:nth-of-type(9) { animation-delay: 20s }
    #F-dynamicbg-box > div:nth-of-type(10) { animation-delay: 16s }

    @keyframes dynamicDiv {
        form { top: 105vh; transform: scale(1.2); }
        to { top: -13vh; transform: scale(1) rotate(60deg); }
    }

JS:( JS初始化div形态 )

        var box = document.getElementById(‘F-dynamicbg-box‘),
            div = box.getElementsByTagName(‘div‘),
            math = [0,1];

        var width = document.documentElement.clientWidth || document.body.clientWidth;
        var height = document.documentElement.clientHeight || document.body.clientHeight;

            for (var i=0;i<div.length;i++) {
                math[1] = F_getSJS(100,40,9)                          F_getSJS 请移步博客之前的取随机数了解
                if(math[1] != math[2]){
                    div[i].style.width = math[1] + ‘px‘;
                    div[i].style.height = math[1] + ‘px‘;
                    math[2] = math[1];
                }
            }

            for(var i=0;i<div.length;i++){
                div[i].style.left = F_getSJS(85,15,8) + ‘vw‘;
                div[i].style.transform = ‘rotate(‘ + F_getSJS(360,5,9) + ‘deg)‘;
            }
时间: 2024-08-24 20:27:40

【CSS3 + 原生JS】上升的方块动态背景的相关文章

原生js代码挑战之动态添加双色球

var ballArr = []; //存放已有的红球,用来排除重复和排序window.onload = function(){ var btn = document.createElement("button"); btn.innerHTML = "按键开始传球!"; btn.onclick = turnRunGo; document.getElementsByTagName("body")[0].appendChild(btn);}//当有重

上升的方块动态背景

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Glunefish</title> <link rel="stylesheet" href="css/style.css"> <style> * { margin: 0; padding: 0;

基于CSS3动态背景登录框代码

基于CSS3动态背景登录框代码.这是一款基于jQuery+CSS3实现的带有动画效果的动态背景登陆框特效. 实现的代码. html代码: <div class="htmleaf-container"> <div class="wrapper"> <div class="container"> <h1>Welcome</h1> <form class="form"

原生js怎么为动态生成的标签添加各种事件

这几天用zepto.js写了不少事件,突然想到一个问题,那就是原生的js如何给动态生成的标签添加事件?因为这些标签都是后来通过ajax或者运行其他点击事件生成的,那么如果之前给他们写事件他们这个dom对象是找不到的,jq通过事件委托解决了这个问题,但是原生js这个问题该怎么解决呢?我在网上查了很多资料,好像只有一种办法,那就是在生成标签并把标签添加到html结构中后再添加对于这个新标签的各种事件,如果有更好的方法,欢迎提出来. <!DOCTYPE html> <html lang=&qu

JS(原生)事件委托:为动态创建的节点绑定事件

项目开发中经常需要为动态创建的节点绑定事件, 比如需要创建一个动态列表:在li的数量非常少的时候,为每一个li绑定事件不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(假设),为每个li绑定事件就会对页面性能产生很大的影响.当有大量元素需要绑定相同事件的时候可采用事件委托,将在目标元素上要处理的事件委托给父元素或者祖先元素 优点    事件委托对于web应用程序的性能有如下几个优点:    1.需要管理的函数变少了    2.占用的内存少了    3.javascrip

原生js实现三个div层动态交换位置

html代码部分 <!--触发变换按钮--> <input type="button" onclick="startMove()" value="点击"/> <!--主体部分--> <div class="localbox"> <div id="b1" class="block1"></div> <div id

基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转

基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠标点击屏幕时的坐标和鼠标移动时的坐标,来获得鼠标在X轴.Y轴移动的距离,将距离实时赋值给transform属性 从而通过改变transform:rotate属性值来达到3d立方体旋转的效果 HTML代码块: <body> <input type="button" clas

css3 动态背景

动态背景 利用多层背景的交替淡入淡出,实现一种背景在不停变换的效果,先看图. 效果图: DEMO地址 步骤 1.利用css的radial-gradient创建一个镜像渐变的背景.其中的80% 20%为渐变中心的x,y位置. 具体的radial-gradient用法可以参见这里 .dynbg__bg{ position: absolute; top: 0px; left: 0px; width:100%; height:100%; background:-moz-radial-gradient(8

原生js canvas 碰撞游戏的开发笔记

-----------------------------------------------福利--------------------------------------------- -----------------------------------------------分割线--------------------------------------------- 今天 我们研究下碰撞游戏 什么是碰撞游戏? 当然是东西碰到在一起啦 用前端逻辑来说 就是2个物品互相碰撞产生的事件 问