在加载和调整大小时使用 window 高度变量的单击函数

Click function with window height variable on load and resize

我有一个简单的点击功能,可以将页面滚动到某个点。该点需要是高度的 1/2 加上 650px。我下面的代码在加载时完美运行:

$(document).ready(function(){

  var scroll = $(window).innerHeight()*.5+650;
    $('a#start').click(function () {
      $('html,body').animate({scrollTop: scroll }, 1500, "easeOutCirc");
      return false;
  });

});

问题是它不会在 window 调整大小时重新计算高度。我尝试了以下无济于事:

$(window).resize(function(){

  var scroll = $(window).innerHeight()*.5+650;
  $('a#start').click(function () {
    $('html,body').animate({scrollTop: scroll }, 1500, "easeOutCirc");
    return false;
  });

});

提前感谢您的任何建议!

为什么要在调整大小处理程序中声明点击事件?

在点击函数中计算高度即可。

$(document).ready(function(){

    $('a#start').click(function () {

      var wh=$(window).innerHeight(), scroll = wh*.5+650;

      $('html,body').stop().animate({scrollTop: scroll }, 1500, "easeOutCirc");
      return false;
  });

});

尝试

$(document).resize and not $(window).resize