1

我对 javascript 不太好,但我已经搜索了 5 个小时,但没有运气。

我试图让按钮工作,如果我一个接一个地编写代码,它工作正常,一切都很好。

我能理解这个问题。单击部分仅在实际进行 CLICK 时才起作用。我对吗?但是我如何纠正它才能像我需要的那样工作?

我可以将 $(name) 值发送到 click 函数,所以当我说 button-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 回答