检查边界的更好方法

时间:2013-07-11 23:26:34

标签: javascript coffeescript

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

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

代码有点冗长。有没有更好的方法来写它?

1 个答案:

答案 0 :(得分:2)

你可以做一个简单的功能:

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置于函数内部,但它的可重用性会降低。