美文网首页
小球规律运动面试题

小球规律运动面试题

作者: lazy_tomato | 来源:发表于2020-06-11 00:04 被阅读0次

需求

  • 20个球
  • 每个球都有三对坐标
  • 3对坐标 小球起始位置,小球第二次的位置,小球第三次的位置。
  • 所有小球,同时运动,
  • 运动到最后的位置时候呢,暂停三秒,然后重新回到最初的位置继续运动。

解题思路

  • canvas
  • css3 过渡(个人看法,球的数量很多的时候,性能很差)
  • 纯算法去做
//css3实现版本
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .qiu {
            width: 5px;
            height: 5px;
            border-radius: 10px;
            position: absolute;
            background: pink;
            transition: all linear 1s;
        }

        #app{
            position: relative;
        }
    </style>
</head>

<body>
    <div id="app">
        <!-- v 就是 每一个对象的数据 k索引 -->
        <div class="qiu" v-for="v,k in arr" :style="'top:'+(v.y1)*100+'px;left:'+(v.x1)*100+'px'" ref="m">

        </div>
    </div>
</body>

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
<script type="text/javascript">
    new Vue({
        el: "#app",
        data: {
            arr: [{
                    "name": "点1",
                    "x1": 0.99,
                    "y1": 0.12,
                    "x2": 0.99,
                    "y2": 0.07,
                    "x3": 1.26,
                    "y3": 0.11
                },
                {
                    "name": "点2",
                    "x1": 0.39,
                    "y1": 0.24,
                    "x2": 1.47,
                    "y2": 0.28,
                    "x3": 1.30,
                    "y3": 0.58
                },
                {
                    "name": "点3",
                    "x1": 0.98,
                    "y1": 0.50,
                    "x2": 1.18,
                    "y2": 0.60,
                    "x3": 1.18,
                    "y3": 0.80
                }
            ]
        },
        methods: {
            mymove: function () {
                console.log(this.$refs)
                var i = 1
                var n = 1;
                let t = setInterval(() => {
                    i++
                    if (i < 4) {
                        n = i
                    } else if (i < 7) {
                        n = 3
                    } else {
                        n = 1
                        i = 1
                    }

                    this.$refs.m.forEach((v, k) => {
                        v.style.cssText =
                            `top:${this.arr[k]["y"+n]*100}px;left:${this.arr[k]["x"+n]*100}px`
                    })
                }, 1000)
            }


        },
        mounted() {
            this.mymove()
        },

    })
</script>
<html>

相关文章

网友评论

      本文标题:小球规律运动面试题

      本文链接:https://www.haomeiwen.com/subject/vsxvtktx.html