【发布时间】:2013-08-27 21:46:22
【问题描述】:
您好,这是我对 stackoverflow 的第一个合法问题,如果我搞砸了一些社会政策,请原谅我。我正在开发 Jquery,我正在使用这些插件。
<script src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.color-2.1.0.min.js"></script>
要使这部分代码工作:
$(document).ready(function () {
var timeout;
$('.twitter').hover(
function () {
timeout = setTimeout(
function () {
$('body').animate({
"background-color": "#dd4b39"
}, 400);
},
function () {
$('body').animate({
"background-color": "#000000"
}, 400);
clearTimeout(timeout);
});
});
});
代码将激活悬停效果并将 div 更改为柔和的红色,但当您将鼠标移离 div 时,它不会将 div 更改为纯黑色。这个网上的大多数例子都表明了一种非常相似的方法,所以我很好奇我在哪里犯了这个错误。
编辑 2013 年 8 月 27 日 18:28 EST
我想历史是必要的,我的原始代码是一个非常简单的函数,但它存在在移动到下一个动画之前构建动画函数队列的问题。
Here's an example(在两个 div 之间快速移动鼠标)
$(document).ready(function(){
$('.twitter').hover(
function() {$('body').animate({"background-color":"#00aced"}, 400);},
function() {$('body').animate({"background-color":"#232323"}, 400);}
);
$('.facebook').hover(
function() {$('body').animate({"background-color":"#3b5998"}, 400);},
function() {$('body').animate({"background-color":"#232323"}, 400);}
);
});
我认为我已经正确构建了一个超时函数,如果您启动了一个新的悬停函数,它将停止前一个悬停函数的动画,从而阻止动画的建立。
【问题讨论】:
-
你的代码真的很奇怪,你想用setTimeout做什么?为什么你的鼠标悬停不起作用?是因为你没有给
hovermouseout 功能。 -
当你提供一个小提琴时,请确保包含所需的库,这里有一个更新的 jQuery 和 jQuery UI 库jsfiddle.net/LBBja/2 我也同意前面的评论,你为什么需要 tiemout?
-
感谢@koala_dev,我从来没有寻求过帮助,所以整个 JSFiddle 对我来说都是新的。为未来着想。
标签: jquery hover jquery-animate jquery-hover