javascript - 移动图像不能超出窗口 DOM

标签 javascript html css

我正在使用 4 个按钮在 javascript 中创建一个脚本来控制图像的移动,用户可以将图像移动到顶部、底部、左侧和右侧,但图像不能走到窗外,应该保持在里面,但我不知道如何保持它在里面。从老式的老式 pin pon 游戏中想象球保持在窗口 DOM 内。

这是html代码:

<img class="c1" id="imagen" src="https://media.sproutsocial.com/uploads/2017/02/10x-featured-social-media-image-size.png"/>

<input type="button" value="Arriba" onclick="MoverArriba();" />
<input type="button" value="Abajo" onclick="MoverAbajo();" />
<input type="button" value="Derecha" onclick="MoverDerecha();" />
<input type="button" value="Izquierda" onclick="MoverIzquierda();" />

这是javascript代码:

var birdX = 0;

        function MoverArriba() {
            var bird = document.getElementById("imagen");

            birdX -= 1;
            bird.style.transform = "translateY(" + birdX + "px)";

        }

        function MoverAbajo() {
            var bird = document.getElementById("imagen");
    alert("hello");

            birdX += 1;
            bird.style.transform = "translateY(" + birdX + "px)";
    alert("hello2");

        }

        function MoverDerecha() {
            var bird = document.getElementById("imagen");

            birdX += 1;
            bird.style.transform = "translateX(" + birdX + "px)";

        }

        function MoverIzquierda() {
            var bird = document.getElementById("imagen");

            birdX -= 1;

            bird.style.transform = "translateX(" + birdX + "px)";

        }

fiddle -> https://jsfiddle.net/7vyokgup/1/

谢谢

最佳答案

你会做到这一点......用数学! :D 给图像一个绝对位置,left 和 top 设置为 0;这将对您以后有很大帮助,因为您所有的数字都将相对于 (0,0)。

当您向左或向上移动时,只需确保该值永远不会低于 0;那是容易的部分。更难的部分是向右和向下移动。您需要确保 x 和 y 不超出屏幕的宽度和高度。幸运的是,我们可以使用一些属性! document.body.clientWidthdocument.body.clientHeight 将分别返回窗口的宽度和高度。因此,当向右或向下移动时,只需确保值不会增长到大于窗口的宽度或高度——减去图像的宽度和高度,当然,因为位置是从左上角开始的:)

关于javascript - 移动图像不能超出窗口 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54189294/

相关文章:

javascript - 如何将文档读入javascript

javascript - 部分 SPA 应用程序,历史导航在视口(viewport)中呈现 JSON

javascript - localstorage如何保存按钮

html - 命名 html 元素类的 css 技巧

javascript - 嵌入谷歌地图的 iFrame 上的 CSS 边框半径不起作用

javascript倒数计时器变为负数

javascript - THREE.js SpriteMaterial发光纹理隐藏边缘

html - 媒体查询以错误的宽度中断

html - Mac 上的 Chrome 浏览器 : Scrollbars disappear when using `position: sticky`

css - 在导航栏后面显示 Glyphicon