增加MooTools的左边距

时间:2011-03-14 21:52:57

标签: javascript mootools

我想将左边距增加-190px,每次点击最多6次。我目前有

$$('#goright').addEvent('click', function(){
     $$('#buttons').tween('marginLeft', -190);
})

但这只会发射一次。我需要在每次点击时运行(jQuery会使用像++这样的东西)然后最多只运行6次(我假设这也会使用像< 6这样的东西)。

任何帮助???

2 个答案:

答案 0 :(得分:1)

这是一种方法。基本上创建一个全局var计数并每次递增1.按下甚至基本上检查点击是否小于6并且如果它抓住所有按钮并对它们执行每个循环然后单独补间它们。诀窍是获取当前el的margin-left样式然后将其转换为int以便删除px然后加或减取决于你想要元素的margin-left去哪里。这是JSFIDDLE演示它的动作,但不是去了-190我用了+10,所以你可以看到效果。如果您正在寻找,请告诉我。顺便说一句,这是使用Mootools核心1.3完全兼容:

var count = 0;

$('goright').addEvent('click', function(){
    if(count < 6){
         $$('.btn').each(function(el){
             el.tween('margin-left', el.getStyle('margin-left').toInt()-190);
         });
    }
    count++;
});

我使用的HTML:

<button class='btn'>1</button>
<button class='btn'>2</button>
<button class='btn'>3</button>
<button class='btn'>4</button>

<div id='goright'>Click To Go Right</div>

答案 1 :(得分:0)

实际上,这是一个有趣的事情!如果您可以使用MooTools More,则可以定义伪事件。事件,执行后与自己“做某事”。因此,您myEl.addEvent('click', fn)会使用myEl.addEvent('click:once', fn)。在MooTools中,:once被定义,它会触发一次,然后取消,这意味着,在第二次点击myEl后,什么都不会发生(EventListener已经去了)。

我创建了一个:times(n)伪事件,没什么大不了的,但它明确了如何使用这些所谓的伪。这是link to it

也许这可以帮助你或其他人。

欢呼和快乐的编码!