私のページにはいくつかのdivがあります。ユーザーが1divにカーソルを合わせると、ユーザーがカーソルを合わせている要素を除く他のすべての要素をフェードアウトします。ただし、これは以下のコードで機能します。ユーザーがすべてのアイテム上でマウスを使って高速で移動すると、各アイテムのフェードプロセスがキューに入れられているように見え、ユーザーがマウスを動かしなくなっても、フェードアウトは次のように続きます。キューは空です。テストするには、以下のコードを確認し、たとえばマウスを左から右に動かして、効果を確認してください。
私が達成したいのは、ユーザーがホバーしている現在のアイテムの不透明度が1で、他のアイテムには0.7が与えられることです。これどうやってするの?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/script/jquery-1.4.2.min.js"></script>
<style>
body{background-color:Red;}
.elementhighlight
{
font-weight:bold !important;
color:#FFF !important;
}
.elementhovered{background-color:#AE2460 !important;}
.element
{
width:140px;
height:130px;
padding-left:4px;
padding-right:4px;
float:left;
cursor:pointer;
}
.element0{background-color:#FFF;}
.element1{background-color:#E6E4E0;}
.element .title,.element1 .title{
font: 12px Helvetica, verdana !important;
text-align:center;
padding-top:4px;
padding-bottom:4px;
color:#666666;
}
</style>
</head>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$('.element').hover(function () {
var curelement = $(this);
curelement.fadeTo(500, 1.0);
curelement.addClass('elementhovered');
curelement.stop().fadeTo(500, 1.0);
$('.element').not('.elementhovered').stop().fadeTo(500, 0.7);
curelement.find('.title').addClass('elementhighlight');
},
function () {
$('.element').fadeTo(300, 1.0);
var curelement = $(this);
curelement.removeClass('elementhovered');
curelement.find('.title').removeClass('elementhighlight');
});
});
</script>
<body>
<div class="element element0">
<div class="title">Item</div>
</div>
<div class="element element1">
<div class="title">Item</div>
</div>
<div class="element element0">
<div class="title">Item</div>
</div>
<div class="element element1">
<div class="title">Item</div>
</div>
<div class="element element0">
<div class="title">Item</div>
</div>
<div class="element element1">
<div class="title">Item</div>
</div>
</body>
</html>