0

次の関数を使用すると、divを左側にアニメーション化できますが、問題は、divが画面領域から外れることです。とにかく私が唯一#mydivの中で左に行くことを続けることができることはありますか?がすでに左側にある#container場合は、何もしないはずです。#mydiv

 $('.left').click(function() {
        $('#myDiv').animate({
            left: '-=30'
            }, 400, function() {
            // callBack
    });

HTML:

<div id="container">
        <a class="left" href="#">Left</a>
    </div>
4

3 に答える 3

1

margin-left: -30px;代わりに試すことができます。

于 2012-08-08T11:50:41.133 に答える
1

コンテナの領域を制限するには、次のことを試してください。

$('.left').click(function() {
    if($('#myDiv').offset().left != 0){ //could be >= 0
        $('#myDiv').animate({
            marginLeft: '-=30'
            }, 400);
    }else{
        console.log('left - 0');
    }
});

CSS:

#myDiv{
    width: 300px;
    height: 200px;
    background: red;
    margin-left: 150px;
}

HTML:

<div id="container">
    <a class="left" href="#">Left</a>
    <div id="myDiv"></div>
</div>

于 2012-08-08T11:56:28.330 に答える
1

これを取得するには、移動するdivが少なくともあなたの側30pxから配置されていることを確認する必要があります。left#container

$('.left').click(function() {
if (parseInt($('#myDiv').css('left')) >= 30) {     
    $('#myDiv').animate({
        left: '-=30'
        }, 400, function() {
        // callBack
    });

     }
 });

例: http: //jsfiddle.net/X2TdJ/1/

あなた#containerがあなたの左側に配置される場合、体marginLeftは止まらず、あなたの#containerdivの外に出ません。

ここでの例:http://jsfiddle.net/DAEsX/1/

于 2012-08-08T12:14:19.247 に答える