JavaScript - 封装一个页面自左向右滚动的方法

Posted WHOVENLY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript - 封装一个页面自左向右滚动的方法相关的知识,希望对你有一定的参考价值。

这几日遇到一个需求,需要在用户进入页面之后,直接触发一个页面自左向右移动再返回到左侧的一个动画,这篇文章就记录一下大致思路。

html代码:
需要一个父级盒子collect_page用于设置滚动,再来一个子级盒子用于放置需要展示的内容。

  <body>
    <div class="collect_page">
      <div class="box"></div>
    </div>
  </body>

css代码:

/* 清除默认样式 */
* {
  padding: 0;
  margin: 0;
}
/* 设置滚动 */
.collect_page {
  overflow: scroll;
}
/* 为了更加美观,去除滚动条 */
::-webkit-scrollbar {
  height: 0;
  display: none !important;
}
/* 内容展示,因为想要滚动效果更加直观,我这里使用了图片 */
.box {
  width: 1920px;
  height: 100vh;
  background: url("./img/bg.jpg") no-repeat;
  background-size: 1920px 100%;
}

js代码:

function show_toggle_scroll() {
  return new Promise((resolve, reject) => {
    //给他一层遮罩,让其在动画播放时不能对页面进行操作
    let mask = document.createElement("div");
    let style = {
      position: "fixed",
      left: "0",
      right: "0",
      top: "0",
      bottom: "0",
      zIndex: "999999",
    };
    Object.keys(style).map((key) => {
      mask.style[key] = style[key];
    });
    document.body.appendChild(mask);
    let status = 0;
    let offset = 0;
    let width =
      document.querySelector(".collect_page").scrollWidth - window.screen.width;
    document.querySelector(".collect_page").scrollLeft = 0;
    let step = 4;
    function scroll() {
      document.querySelector(".collect_page").scrollLeft = offset;
      if (status == 0) {
        offset += step;
        offset <= width && window.requestAnimationFrame(scroll);
        offset >= width && status++;
      }
      if (status == 1) {
        offset -= step;
        offset >= 0 && window.requestAnimationFrame(scroll);
        offset <= 0 && status++;
      }
      if (status == 2) {
        resolve("finish");
        window.isScroll = false;
        document.body.removeChild(mask);
      }
    }
    window.requestAnimationFrame(scroll);
  });
}
show_toggle_scroll();

以上是关于JavaScript - 封装一个页面自左向右滚动的方法的主要内容,如果未能解决你的问题,请参考以下文章

C-运算符

层的应用-由左向右的滚动广告

前端基础

C运算符总结

关于梯形图的学习

树的分类有哪些,树的遍历——4