javascript - 当视口(viewport)改变时代码会出错

标签 javascript html

我有以下函数,当用户从底部滚动 250px 时(而不是在移动设备上),“up-btn”会出现在页面底部

html(在 head 标签中)

<script>
 if ($(window).width() > 768) {
$(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() > ($(document).height() - 250)) {
        $("#up-btn").fadeIn(500);
    } else {
        $("#up-btn").fadeOut(500);
    }
   });
 };
</script>

html(正文)

<a id="up-btn" href="javascript:void(0);" onclick="scrolltop();"><i class="fa fa-chevron-up fa-lg"></i></a>

它工作正常。但是,当我将窗口缩放到移动设备然后缩放到ceen大小时。或者,如果窗口以移动设备尺寸打开,等等,代码将不起作用并且按钮保持不可见。

想知道是否对我的代码进行了更改,使其更加万无一失?

最佳答案

只需删除 if 语句即可:

<script>
  $(window).on('scroll', function() {
    if ($(window).scrollTop() + $(window).height() > ($(document).height() - 250)) {
      $("#up-btn").fadeIn(500);
    }
    else {
        $("#up-btn").fadeOut(500);
    }
  });
</script>

说到这里,您可能会考虑对函数进行去抖动,以避免一直重新计算,例如。当滚动停止时重新计算。

关于javascript - 当视口(viewport)改变时代码会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37577328/

相关文章:

javascript - 在 Vue.js 中单击 DOM 元素时执行函数

javascript - 如何使用 Javascript 从 URL 获取 JSON 字符串?

javascript - 根据用户输入发送参数

javascript - Jquery .animate() 有问题

html - 对齐中心消息实现 css 框架

php - 从 URL 抓取 HEX - PHP

javascript - 限制给定 html 字符串的标签深度

javascript - 溢出时调整字体大小以适合内容

javascript - 选择选项后,vuetify 的 v-autocomplete 无法编辑文本输入

javascript - 单击注入(inject) HTML 的按钮时,如何使 div 内容以动画显示?