0
我正在尋找一些靜態的文本,但是當用戶將鼠標懸停在文本上時,它會通過不同單詞的數組進行動畫製作,用戶刪除他們的鼠標。在鼠標懸停上的文字動畫,停止並在鼠標懸停時重置
我得到這個其他SO後的幫助很遠:
changing text periodically in a span from an array with jquery
但不能得到循環隊列停止並懸停被刪除後回到原來的單詞。
我想有一個句子,如這樣的:
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
因此,如果用戶將鼠標懸停在「此」,那麼它動畫由衰落/出去的換句話說,例如數組:
var terms = ["newword1", "newword2", "newword3"];
但是當懸停被移除時,它將停止動畫隊列並重置以再次顯示「this」。
這是我到目前爲止有:
var terms = ["term 1", "term 2", "term 3"];
function rotateTerm() {
var ct = $("#rotate").data("term") || 0;
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(200, rotateTerm);
};
主要從其他SO發佈,但已經改變了觸發:
$("#rotate").mouseenter(function(){
$(rotateTerm);
});
$("#rotate").mouseleave(function(){
});
所以現在這個觸發鼠標懸停,這是偉大的,但是我無法在「mouseleave」函數中放置現在正在運行的旋轉文本。
這看起來相當不錯,但如果你把鼠標移動到改變文本的中心,並且不要完全移動鼠標指針,有時文本會隨機「閃爍」或一次在兩個或三個狀態之間跳轉。任何想法是什麼造成這個? – Richard
@Richard你是對的,這是因爲有時'fadeOut()'和'fadeIn()'之間觸發'mouseleave'事件,所以我改變了超時時間來解決這個問題。 – Hulothe
@Richard您可能希望將鼠標懸停在段落本身(塊元素)上,而不是跨度(內聯元素)。 https://jsfiddle.net/NotInUse/6tgz1gsa/3/ +1雖然。 – Scott