0

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

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

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

4

1 回答 1

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放在函数内部,尽管那时它的可重用性会降低。

于 2013-07-11T23:52:28.977 回答