如何实现CSS动画[已关闭]

qf9go6mv  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(133)

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
13小时前关门了。
Improve this question
初级网络开发人员。
我刚刚遇到了一个特定的网页模板,真的让我很惊讶,并希望克隆它作为我的个人项目来训练自己。
您可以在这里查看:https://overworld.qodeinteractive.com/
但是我遇到了一些我不知道如何实现的css样式。例如,尖锐的边角,甚至图像一旦出现就如何动画移动和反弹。
我尝试使用变换和关键帧,但无法实现动画

qnakjoqk

qnakjoqk1#

<div class="box">
        <img src="https://overworld.qodeinteractive.com/wp-content/uploads/2020/01/Beat-the-game.png" alt=""
            class="layer" data-speed="5">

        <img src="https://overworld.qodeinteractive.com/wp-content/uploads/2019/10/main-home-rev-img-3.png" alt=""
            class="layer" data-speed="5">

        <div class="btn-group">
            <button class="layer" data-speed="4">Buy theme</button>
            <button class="layer" data-speed="4">Meet us</button>
        </div>
    </div>

CSS Code 
body {
            margin: 0;
            background-color: rebeccapurple;
        }

        .box {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

        .box img {
            display: block;
            width: 300px;
            margin: 30px 0;
        }

        .btn-group {
            display: flex;
            gap: 30px;
        }

        button {
            border: none;
            background-color: #39135e;
            color: #fdff;
            padding: 16px 30px;
            width: 135px;
        }

    Js Code
        <script type="text/javascript">
                document.addEventListener("mousemove", parallax);
                function parallax(e) {
                    this.querySelectorAll('.layer').forEach(layer => {
                        const speed = layer.getAttribute('data-speed')
        
                        const x = (window.innerWidth - e.pageX * speed) / 100
                        const y = (window.innerHeight - e.pageY * speed) / 100
        
                        layer.style.transform = `translateX(${x}px) translateY(${y}px)`
                        layer.style.cursor = "pointer";
                        console.log(x, y);
                    })
                }
            </script>

相关问题