次のアイテムがクリックされた後、要素を開始位置に戻す際に問題が発生しました。
ユーザーが div.box の 2 つの要素遷移にカーソルを合わせると、その要素がクリックされたときに、要素がその場所にとどまる必要があります。これは、同じアイテムをクリックしてオン/オフすると正常に機能します。問題は、次の項目がクリックされたときにスパンが a.blanket 内の中央に留まることです。
コード: http://jsfiddle.net/MhLwH/3/
HTML:
<div class="box">
<div class="img"></div>
<a href="" class="blanket">
<span class="arrow"></span>
</a>
</div>
<div class="box">
<div class="img"></div>
<a href="" class="blanket">
<span class="arrow"></span>
</a>
</div>
CSS:
.box {
width:200px;
height:200px;
background:red;
float:left;
margin-left:10px;
margin-top:50px;
position:relative;
/*overflow:hidden*/
}
.blanket {
width:100%;
height:100%;
position:absolute;
top:100%;
left:0;
background:blue;
}
.blanket, .arrow {
-webkit-transition: all 0.3s ease-in;
}
.arrow {
display:block;
width:100px;
height:100px;
position:relative;
background:black;
top:-300px;
z-index:9999;
}
.box:hover .blanket {
top:0;
}
.box:hover .blanket span {
top:53px;
}
.active {
top:0;
}
.activeArrow {
top:53px;
}
JS:
$('.box').find('a').click(function (e) {
e.preventDefault();
var $this = $(this);
if ($this.is('.active')) {
$this.removeClass('active');
$this.find('span').removeClass('activeArrow');
} else {
$('a.active').removeClass('active');
$this.addClass('active');
$this.find('span').addClass('activeArrow');
}
});
余談ですが、移行は今のところWebkitのみをターゲットにしていることを知っています