jquery - 限制元素在 jquery 中的移动

标签 jquery css html

您好,我有一个随机移动的 gif,但问题是我不希望它能够超出宽度 100% 高度 100%; , 我怎样才能避免这种情况?

html

<body>
    <div id='background'></div>
    <div id='waterfallframe'>
    <img src="waterfall.gif" id='waterfall'></div>
    </div>
</body>

j查询

$("#waterfall").on({
    mouseover:function(){
        $(this).animate({
            left:(Math.random()*700)+"px",
            top:(Math.random()*700)+"px",
            width:"+=1px",
            height:"+=1px",
        },100);
    }
});

最佳答案

我在 javascript 中做的不多,所以可能有更简洁的方法来实现这一点。

但是从数学的 Angular 来看,您要做的是将 left 和 top 值限制为屏幕内的值。 您可以通过获取屏幕宽度并减去图像宽度来获得这些值。

计算应该是这样的:

left:(Math.random()*(window.innerWidth - $("#waterfall").clientWidth)
top:(Math.random()*(window.innerHeight - $("#waterfall").clientHeight)

如果你想测试看看这会产生预期的结果,你可以去掉随机部分,让它看起来像这样:

left:((window.innerWidth - $("#waterfall").clientWidth)
top:((window.innerHeight - $("#waterfall").clientHeight)

这导致图像处于随机生成的最大可能位置。

作为一个公式,为了将来使用,它类似于:

minimumX + randomScaleFactorBetween0and1*(maximumX - minimumX - widthOfObject)

希望对您有所帮助。

关于jquery - 限制元素在 jquery 中的移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25386087/

相关文章:

css - 如何去除元素之间的空白?

javascript - Div 没有根据我的需要正确定位

html - 如何从 CDN 更改 Bootstrap 导航菜单颜色

javascript - 如何使用JQUERY或JAVASCRIPT将IOS键盘中的 "Return"按钮更改为 "Next"按钮?

html - 为什么我的 div 还包含一个不是其子元素的 div?

javascript - Chrome 扩展 - 使用 JQuery 在 content_scripts 上触发事件

php - WordPress admin-ajax.php 失败

javascript - 在页面加载更多元素时加载 gif

javascript - 将 div img 更改为另一张中的事件图像

php - jquery 获取 jquery 中先前的值