检查边界的更好方法

Better way to check bounds

本文关键字:方法 更好 边界 检查      更新时间:2023-09-26

我正在检查一个对象是否在框的边界之外。如果它在盒子的边界之外,那么我把它放回

if position.left < dot_radius
    dot.css 'left', dot_radius
if position.left > display_width - dot_radius
    dot.css 'left', display_width - dot_radius
if position.top < dot_radius
    dot.css 'top', dot_radius
if position.top > display_height - dot_radius
    dot.css 'top', display_height - dot_radius

代码有点冗长。有更好的写法吗?

您可以制作一个简单的函数:

bounds = (prop, min, max) ->
    val = position[prop];
    if (val < min)
        dot.css prop, min
    if (var > max)
        dot.css prop, max
bounds 'left', dot_radius, display_width - dot_radius
bounds 'top', dot_radius, display_height - dot_radius

您甚至可以将dot_radius放在函数中,尽管它的可重用性会降低。