Javascript 如何在mouseleave上返回原始内部文本?
我想随机化一个特定的id悬停字符。 它可以在鼠标输入时正常工作,但无法在鼠标离开时使其停止并返回到初始文本 这是密码Javascript 如何在mouseleave上返回原始内部文本?,javascript,jquery,html,Javascript,Jquery,Html,我想随机化一个特定的id悬停字符。 它可以在鼠标输入时正常工作,但无法在鼠标离开时使其停止并返回到初始文本 这是密码 jQuery(函数($){ 函数文本_shuffle(){ “严格使用”; var counter=0,all=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzo123456789”; var$\u inter=setInterval(函数(){ var text=document.getElementById(“文本洗
jQuery(函数($){
函数文本_shuffle(){
“严格使用”;
var counter=0,all=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzo123456789”;
var$\u inter=setInterval(函数(){
var text=document.getElementById(“文本洗牌”);
text.innerHTML=text.innerHTML.substring(0,计数器)+all.charAt(Math.floor(Math.random()*all.length))+text.innerHTML.substring(计数器+1);
计数器=(计数器+1)%text.innerHTML.length;
}, 100);
}
$(“#文本洗牌”).mouseenter(文本洗牌);
});代码>
主页
您需要在mouseleave上清除间隔。您没有调用mouseleave函数,因此您的代码会无限期地扰乱div中的字符
我所做的只是将间隔设置为一个变量,然后清除mouseleave上的变量
jQuery(函数($){
all=“abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvxyz012456789”;
var-int;
var计数器=0;
函数textShuffle(){
var text=document.getElementById(“文本洗牌”);
text.innerHTML=text.innerHTML.substring(0,计数器)+all.charAt(Math.floor(Math.random()*all.length))+text.innerHTML.substring(计数器+1);
计数器=(计数器+1)%text.innerHTML.length;
}
$(“#文本洗牌”).hover(函数(){
int=设置间隔(textShuffle,100);
},函数(){
清除间隔(int);
document.getElementById(“文本洗牌”).innerText=“Home”;
});
});代码>
主页
使用clearInterval
停止随机字符,当鼠标用完文本时替换原始文本
jQuery(函数($){
函数文本_shuffle(){
“严格使用”;
var counter=0,all=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzo123456789”;
$\u inter=setInterval(函数(){
var text=document.getElementById(“文本洗牌”);
text.innerHTML=text.innerHTML.substring(0,计数器)+all.charAt(Math.floor(Math.random()*all.length))+text.innerHTML.substring(计数器+1);
计数器=(计数器+1)%text.innerHTML.length;
}, 100);
}
var值,$\u inter;
$(“#文本洗牌”).mouseenter(函数(){
value=$(this.html();
text_shuffle();
}).
mouseout(函数(){
净空间隔($_inter);
$(this.html(value);
});
});代码>
主页
(function(){
'use strict';
var all = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
elem = document.getElementById("text-shuffle"),
orig = elem.innerHTML;
var $_inter;
function text_shuffle()
{
var counter = 0;
$_inter = setInterval( function()
{
elem.innerHTML = elem.innerHTML.substring(0, counter) + all.charAt(( Math.random() * all.length ) | 0 ) + elem.innerHTML.substring(counter + 1);
counter = (counter+1) % elem.innerHTML.length;
}, 100);
}
function clear() { clearInterval( $_inter ); elem.innerHTML = orig };
$("#text-shuffle").hover( text_shuffle, clear )
}())