迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

JavaScript 实现自动滚动

作者:迹忆客 最近更新:2024/03/18 浏览次数:

JavaScript 确保了更好的 UI 体验,并且具有广泛的方法。在我们设置页面自动滚动的问题中,我们将检查一些可以组合并制作很酷的 UI 的功能。

这里的基本任务是我们将在每次页面加载时自动滚动我们的网页。此外,当在滚动时按下 Enter 时,页面将停止。

再次按下 Enter 后,页面将开始滚动。让我们跳到代码,尝试理解代码流。


使用 scrollBy()setInterval() 在 JavaScript 中自动滚动

在演示中,我们将拥有比视口更大的 UI。主要任务是用 JavaScript 实现的。

我们已经初始化了 2 个函数(startScrollstopScroll)。startScroll() 函数将在每次按下 Enter 时启用滚动。

当检测到 Enter 按下时,stopScroll() 将被启用。

startScroll 函数具有 setInterval()scrollBy() 方法。我们将合并这两种方法。

通过方法 scrollBy(),我们将设置我们期望的滚动类型。我们的代码将水平滚动设置为 0,垂直滚动设置为 2 单位。

这是一种向下滚动的静态方式,你不会看到滚动发生。页面将在滚动部分之后跳转并显示给你。

因此,我们将时间间隔设置为 10 毫秒;因此,页面在视觉上会下降。在 stopScroll() 函数中,我们将通过检查当前页面位置的实例来清除间隔。

我们还将使用 Enter 进行条件语句以确保播放暂停。让我们检查一下代码。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="one" style="height: 250px; background:pink">
    <br>
    &nbsp On page load the scrolling of the page will be enabled. <br>
    &nbsp When pressed enter, the scroll will be halt. <br>
    &nbsp And when pressed again it will scroll. <br>
    &nbsp When the scroll meets the end of page, the scrolling function will stop. <br>
    &nbsp And you can manually scroll up. An when needed press enter again to scroll to down. <br>
  </div>
  <div id="one" style="height: 250px; background:purple"></div>
  <div id="one" style="height: 250px; background:cyan"></div>
  <div id="one" style="height: 250px; background:lightgreen"></div>
</body>
</html>
let scrollerID;
let paused = true;
let interval = 10;

function startScroll() {
  let id = setInterval(function() {
    window.scrollBy(0, 2);
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
      // end of page?
      stopScroll();
    }
  }, interval);
  return id;
}

function stopScroll() {
  clearInterval(scrollerID);
}
document.body.addEventListener('keypress', function(event) {
  if (event.which == 13 || event.keyCode == 13) {
    // 'Enter' key
    if (paused == true) {
      scrollerID = startScroll();
      paused = false;
    } else {
      stopScroll();
      paused = true;
    }
  }
}, true);

输出:

可以看出,页面在到达页面末尾时停止滚动。并且当再次手动滚动到顶部时,可以再次播放滚动条。

因此,可以实现自动滚动行为。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

JavaScript 中的内联 if 语句

发布时间:2024/03/18 浏览次数:171 分类:JavaScript

JavaScript 条件语句可以使用内联 if 语句进行操作,也称为三元运算符。另一种方法是使用逻辑运算符来获得可感知的答案

JavaScript 使用 if 语句中的的 OR 条件

发布时间:2024/03/18 浏览次数:132 分类:JavaScript

JavaScript 包含条件语句,如 if else 语句、switch case 等。这些语句是有条件的,用于检查给定条件是否为 True OR Not,为此我们使用 OR ||和 && 运算符。

等价于 Ruby 的 unless 的 JavaScript 中的语句

发布时间:2024/03/18 浏览次数:178 分类:JavaScript

JavaScript 没有内置的除非条件或任何方法来处理。相反,它根据基本的 if-else 条件和三元条件进行决策。在 JavaScript 中,unless 可以通过用户定义的函数来实现,或者简单地否定一般的

使用 JavaScript 将 HTML 添加到 div 中

发布时间:2024/03/18 浏览次数:65 分类:JavaScript

通过 JavaScript 初始化一个 div 元素通常遵循 createElement() 方法。另一个先前的约定是使用 insertAdjacentHTML() 方法来定义一个 div 元素。

JavaScript 重新加载 DIV

发布时间:2024/03/18 浏览次数:89 分类:JavaScript

要在 HTML 正文中重新加载 div 内容,可以使用 jQuery 的 .load() 函数,与 window.location.href 合并并使用它选择所有其他 div。此外,了解进程是否正常工作的另一个关键部分是设置时间间隔。

在 JavaScript 中设置滚动位置

发布时间:2024/03/18 浏览次数:160 分类:JavaScript

在界面中设置滚动位置可以通过 JavaScript 以多种方式实现。我们可以使用 scrollTo() 方法、scrollBy() 方法等。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便