Я создаю своего рода анимированный заголовок для своей домашней страницы, где я хочу, чтобы слова зависали и изменяли их горизонтальное местоположение случайным образом.Перемешать слова при наведении только один раз
HTML
<header>
<a href="#">
<span>One</span> <span>100</span> <span>Twenty</span> <span>2000</span>
</a>
</header>
JQuery
(function($){
$.fn.shuffle = function() {
var allElems = this.get(),
getRandom = function(max) {
return Math.floor(Math.random() * max);
},
shuffled = $.map(allElems, function(){
var random = getRandom(allElems.length),
randEl = $(allElems[random]).clone(true)[0];
allElems.splice(random, 1);
return randEl;
});
this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});
return $(shuffled);
};
})(jQuery);
$("header").mouseenter(function(){
$('span').shuffle();
});
Я получил этот случайный код в случайном порядке из css-tricks.com ANDS его немного изворотливый. Когда я наведении на заголовок он идет немного слишком сумасшедшим с shuffleing и когда я хочу, чтобы нажать на ссылку, что-то вызывает функцию снова:
jsFiddle http://jsfiddle.net/5CMCH/1/
То, что я хочу, чтобы достичь является чтобы иметь только одно изменение, когда я нахожу его, щелкните по ссылке, чтобы перейти к индексу, а другой - когда я снова запустил мышь и т. д.
Любые подсказки?
, что именно, но и добавить 'e.stopPropagation()', чтобы предотвратить crazyness. [Fiddle here] (http://jsfiddle.net/techunter/5CMCH/4/) – TecHunter
ОК. это имеет смысл, но это только запускает его один раз, если id хочет перетасовать его снова, мне придется обновить страницу. Я хотел бы сделать это как: in, out, in out ... и каждый раз это меняется. Я попробовал ответить Класману, это было хорошо, но встроенный блок делает беспорядок на странице, когда я наводил на заголовок вход и выход. – r1987