0

これをインターネットで 3 時間以上検索しましたが、私のコードではどの提案も機能しません。私がやろうとしているのは、クリックするたびに写真を1つずつ左にスライドさせ(合計3枚の写真)、最後の写真が画面に表示されたら左にスライドして最初の写真に戻ることです。そのためには、最初の画像が特定の場所 (左に 180em) に達したときに左マージンを検出し、それを「ems」値 (コードは以下) と比較する必要があります。「if」ステートメントは決して発砲せず、常に「else」に向けます。

「$('#picture1').offsetLeft」、「$('#picture1').layerX」、「$('#picture1'.左」もありましたが、どれも機能しませんでした。

別の Web サイト、Stackoverflow の別の質問、または解決策を教えていただければ幸いです。

注:コードに誤りがある場合、または質問が私を修正する場合、私はjavascriptを非常に新しく使用しています。ありがとうございました。

var position = parseInt(jQuery("#picture1").css("margin-left"));
var left_border = '180ems';
    $(function() {
        $(".button").click(function() {
            if (position > 180ems) {
               $("#picture1").animate({
                   left: '-=60em'
               }, 600);
               $("#picture2").animate({
                   left: '-=60em'
               }, 600);
               $("#picture3").animate({
                   left: '-=60em'
               }, 600);
            }
            else {
                $("#picture1").animate({
                   left: '+=180em'
               }, 600);
               $("picture2").animate({
                   left: '+=120em'
               }, 600);
               $("#picture3").animate({
                   left: '+=60em'
               }, 600);
            };
        });
4

1 に答える 1

0

常にピクセル単位で値を取得してから、これを em に変換しようとすることができます。この質問jQuery/JavaScript: convert pixel to em in a easy way を参照してください。

編集:または、左から180emsの目に見えない要素を配置し、その要素からこのピクセル値を取得して、その値を比較に使用できます。

于 2012-05-02T05:37:58.670 に答える