私はこの投稿(http://stackoverflow.com/questions/10665918/jquery-animate-shake-on-hover)に出くわしました。これはほとんど私が探しているものであり、このjsfiddle(http://jsfiddle.net/ g6AeL / 222 /)ですが、アイテムにカーソルを合わせている間は継続的に振動するのではなく、アイテムにカーソルを合わせたときに1回だけ振動機能を実行する必要があります。
アイテムにカーソルを合わせたときに、誰かがそれを1回だけ実行するのを手伝ってもらえますか?
これがjsfiddleのjavascriptです。
$(function() {
var interval = 10;
var duration= 1000;
var shake= 3;
var vibrateIndex = 0;
var selector = $('.box'); /* Your own container ID*/
$(selector).each(function(){
var elem = this;
$(this).hover( /* The button ID */
function(){
vibrateIndex = setInterval(function(){
vibrate(elem);
}, interval);
},
function(){
clearInterval(vibrateIndex);
$(this).stop(true,false)
.css({position: 'static', left: '0px', top: '0px'});
}
);
})
var vibrate = function(elem){
$(elem).stop(true,false)
.css({position: 'relative',
left: Math.round(Math.random() * shake) - ((shake + 1) / 2) +'px',
top: Math.round(Math.random() * shake) - ((shake + 1) / 2) +'px'
});
}
});