吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1737|回复: 8
收起左侧

[求助] web前端(半成品)希望大佬多多指教,知识点:浮动,对象数组,随机数,样式绑定!

[复制链接]
w460270218 发表于 2022-4-22 22:40
要求:1.页面放置一个800*600的div盒子,内部嵌入两个浮动的div!
           2.随机生成一个长度为100的对象数组,数组内对象包含如下属性:
             width: 0-100随机数
              height: 0-100随机数
              top: 0-600随机数
               left:0-800随机数
                R: 0-255随机数
                G: 0-255随机数
                B: 0-255随机数
          3.将第二步生成的随机数组中对象属性width大于50和小于50的对象,分别拆分到两个新的数组对象中。
          4.使用一个定时器,每隔一秒执行一次,在拆分出来的两个数组中随机抽取一个对象,更改第1步中的2个浮动div的大小、位置和颜色。
       (可以在jquery、vue、react中任意选一个框架来实现--------------代码编写过程中尽量多用ES6的新特性)
[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .on {
            width: 800px;
            height: 600px;
            padding: 20px;
            border: 1px solid #888;
            box-sizing: border-box;
        }

        .on1 {
            float: left;
            height: 100%;
            border: 1px solid red;
            width: 48%;
            box-sizing: border-box;
        }

        .on2 {
            float: right;
            height: 100%;
            border: 1px solid blue;
            width: 48%;
            box-sizing: border-box;
        }
    </style>
</head>

<body>
    <div class="on" id="app">
        <div class="on1" :style=""></div>
        <div class="on2"></div>
    </div>
    <script>
        var arr = [];
        //生成范围内的随机整数
        function random_number(min, max) {
            min = parseInt(min);
            max = parseInt(max);
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        //循环生成对象并添加到数组
        for (var i = 0; i < 100; i++) {
            var obj = {
                width: random_number(0, 100) + 'px',
                height: random_number(0, 100) + 'px',
                top: random_number(0, 600) + 'px',
                left: random_number(0, 800) + 'px',
                R: random_number(0, 255),
                G: random_number(0, 255),
                B: random_number(0, 255),
            }
            arr.push(obj)
        }
        var arr1 = []
        var arr2 = []
        //width大于50和小于50的对象拆分到两个数组中
        arr.filter(item => {
            if (parseInt(item.width) > 50) { arr1.push(item) } else { arr2.push(item) }
        })
    </script>
    <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {

            },
            computed: {
                // 每隔一秒从数组中选取一个对象
                time1: setInterval(function () {
                    arr1[random_number(0, arr1.length - 1)]
                }, 1000),
                time2: setInterval(function () {
                    arr2[random_number(0, arr1.length - 1)]
                }, 1000)
            }
        })
    </script>
</body>

</html>

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| w460270218 发表于 2022-4-23 00:14
不知道符不符合要求,大概做成这个样子了!
[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .on {
            width: 800px;
            height: 600px;
            padding: 20px;
            border: 1px solid #888;
            box-sizing: border-box;
            overflow: hidden;
        }

        .on1 {
            float: left;
            height: 100%;
            border: 1px solid red;
            width: 48%;
            box-sizing: border-box;
            position: relative;
        }

        .on2 {
            float: left;
            height: 100%;
            border: 1px solid blue;
            width: 48%;
            box-sizing: border-box;
            position: relative;
        }
    </style>
</head>

<body>
    <div class="on" id="app">
        <div class="on1" :style="style1"></div>
        <div class="on2" :style="style2"></div>
    </div>
    <script>
        var arr = [];
        // //生成范围内的随机整数
        function random_number(min, max) {
            min = parseInt(min);
            max = parseInt(max);
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        //循环生成对象并添加到数组
        for (var i = 0; i < 100; i++) {
            var obj = {
                width: random_number(0, 100) + 'px',
                height: random_number(0, 100) + 'px',
                top: random_number(0, 600) + 'px',
                left: random_number(0, 800) + 'px',
                background: 'rgba(' + random_number(0, 255) + ',' + random_number(0, 255) + ',' + random_number(0, 255) + ',1)'
            }
            arr.push(obj)
        }
        var arr1 = []
        var arr2 = []
        //width大于50和小于50的对象拆分到两个数组中
        arr.filter(item => {
            if (parseInt(item.width) > 50) { arr1.push(item) } else { arr2.push(item) }
        })
    </script>
    <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
                style1: {},
                style2: {}
            },
            created() { this.time1(), this.time2() },
            methods: {
                time1() {
                    var self = this;
                    setInterval(function () {
                        self.style1 = arr1[random_number(0, arr1.length - 1)]
                    }, 1000)
                },
                time2() {
                    var self = this;
                    setInterval(function () {
                        self.style2 = arr2[random_number(0, arr2.length - 1)]
                    }, 1000)
                }
            }
        })
    </script>
</body>

</html>
 楼主| w460270218 发表于 2022-4-22 22:44
头像被屏蔽
ATTYCHEN 发表于 2022-4-22 23:07
依旧沉沉 发表于 2022-4-22 23:11
w460270218 发表于 2022-4-22 22:44
希望大佬能做出完整版的!

你发求助区多好
 楼主| w460270218 发表于 2022-4-23 00:16

参考一下5楼
 楼主| w460270218 发表于 2022-4-23 00:18

参考一下5楼
头像被屏蔽
xiadongming 发表于 2022-4-23 10:55
提示: 作者被禁止或删除 内容自动屏蔽
bilibini 发表于 2022-4-23 16:14

我写的和你展示的效果差不多。
之前看错要求了,写成这样
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表