1

私は JavaScript があまり得意ではありませんが、5 時間検索しましたが、うまくいきませんでした。

ボタンを機能させようとしています。コードを1つずつ記述すれば、問題なく動作し、すべて問題ありません。

問題は理解できます。クリック部分は、実際にクリックしたときにのみ動作します。私は正しいですか?しかし、必要に応じて機能するように修正するにはどうすればよいですか?

$(name) の値をクリック関数に送信できるので、ボタン 1 がクリックされてから scrollTop: $(button-1-block) と言うことができるか、この場合は考えすぎでしょうか。

    var divHeight = 700
    var blocks = document.getElementsByClassName("blocks");
    var i = 1;

    for(i=1;i<blocks.length+1; i++) {
        var name = "#button-"+i;
        var blx = "#block-"+i;
        $(name).click(function(){
            $('html, body').stop().animate({
                scrollTop: $(blx).offset().top - ( $(window).height() - divHeight )/2 
              }, 2100,'easeInOutExpo');
         });

    }
4

1 に答える 1

2

これを試して:

var divHeight = 700
//var blocks = $(".blocks");

$('[id^="button"]').click(function(){
     var block = '#block-' + this.id.match(/\d+/g).join("");
     $('html, body').stop().animate({
          scrollTop: $(block).offset().top - ( $(window).height() - divHeight )/2 
     }, 2100,'easeInOutExpo');
});
于 2012-09-30T07:02:09.617 に答える