このjsFiddleを使用して、デザインしているWebページにdivのようなグルーポン(groupon.com)を実装しました。
私の質問は、divを右クリックして移動するのではなく、各divにボタンがあり、ボタン(divにある)をクリックして次のdivに進むように設定するにはどうすればよいですか?ボタンなしでdiv自体をクリックするだけですか?
すべての助けは大歓迎です!
このjsFiddleを使用して、デザインしているWebページにdivのようなグルーポン(groupon.com)を実装しました。
私の質問は、divを右クリックして移動するのではなく、各divにボタンがあり、ボタン(divにある)をクリックして次のdivに進むように設定するにはどうすればよいですか?ボタンなしでdiv自体をクリックするだけですか?
すべての助けは大歓迎です!
既存のコードでフィドルを更新しました。このデモをご覧ください。
$('.box button').click(function() {
$('.box').each( function() {
if ($(this).offset().left < 0) {
$(this).css("left", "150%");
}
});
var t=$(this);
t.parent().animate({ left: '-50%' }, 500);
if (t.parent().next().size() > 0) {
t.parent().next().animate({ left: '50%' }, 500);
}
else{
t.parent().prevAll().last().animate({ left: '50%' }, 500);
}
});
HTML の例
<div id="container">
<div id="box1" class="box"><button class="button">Div #1</input></div>
<div id="box2" class="box"><button class="button">Div #2</input></div>
<div id="box3" class="box"><button class="button">Div #3</input></div>
<div id="box4" class="box"><button class="button">Div #4</input></div>
<div id="box5" class="box"><button class="button">Div #5</input></div>
</div>
スクリプト例
$('.box .button').click(function() {
$('.box').each( function() {
var $currentBox = $(this);
if ($currentBox.offset().left < 0) {
$currentBox.css("left", "150%");
}
});
var $currentDiv = $(this).parent();
$currentDiv.animate({
left: '-50%'
}, 500);
if ($currentDiv.next().size() > 0) {
$currentDiv.next().animate({
left: '50%'
}, 500);
} else {
$currentDiv.prevAll().last().animate({
left: '50%'
}, 500);
}
});
</p>
デモを見る
http://jsfiddle.net/ykbgT/2446/
同じコードで、リンク (またはボタン) が押されたときに同じように動作するように微調整されていますが、$(this) (以前は div) を使用する代わりに、$(this).parent() を実行するようになりました ($ (this) はリンクで、親は div です)
編集:親をキャッシュするように更新されました。