javascript - 我如何将我的js代码迁移到reactjs并调用它?

标签 javascript reactjs

大家好,我是新手,所以请原谅我提出的愚蠢问题 Angular 中的 js 函数可以让我同时水平滚动两个 div

  ngOnInit() {
    this.settActivityAndTaskCells();
    //-------------------Begin Scroll-------------------
    var isSyncingLeftScroll = false;
    var isSyncingRightScroll = false;
    var leftDiv = document.getElementById('top');
    var rightDiv = document.getElementById('bot');

    leftDiv.onscroll = function () {
      if (!isSyncingLeftScroll) {
        isSyncingRightScroll = true;
        rightDiv.scrollLeft = this.scrollLeft;
      }
      isSyncingLeftScroll = false;
    }

    rightDiv.onscroll = function () {
      if (!isSyncingRightScroll) {
        isSyncingLeftScroll = true;
        leftDiv.scrollLeft = this.scrollLeft;
      }
      isSyncingRightScroll = false;
    }
    //-------------------End Scroll-------------------
  }

所以我在reactjs上像这样改变它

Scrolling = () => {
    var isSyncingLeftScroll = false,
      isSyncingRightScroll = false,
      leftDiv = document.getElementById('top'),
      rightDiv = document.getElementById('bot');

    if (!isSyncingLeftScroll) {
      isSyncingRightScroll = true;
      rightDiv.scrollLeft = this.scrollLeft;
    }
    isSyncingLeftScroll = false;

    if (!isSyncingRightScroll) {
      isSyncingLeftScroll = true;
      leftDiv.scrollLeft = this.scrollLeft;
    }
    isSyncingRightScroll = false;

  }

并在 div 中调用它,例如

但滚动不起作用感谢任何花时间帮助我、审查并提供反馈的人。

最佳答案

您的迁移代码缺少最重要的部分,即将新函数绑定(bind)到 scroll 事件。应该是:

Scrolling = () => {
    var isSyncingLeftScroll = false,
        isSyncingRightScroll = false,
        leftDiv = document.getElementById('top'),
        rightDiv = document.getElementById('bot');

    leftDiv.onscroll = () => {
        if (!isSyncingLeftScroll) {
            isSyncingRightScroll = true;
            rightDiv.scrollLeft = this.scrollLeft;
        }
        isSyncingLeftScroll = false;
    };

    rightDiv.onscroll = () => {
        if (!isSyncingRightScroll) {
            isSyncingLeftScroll = true;
            leftDiv.scrollLeft = this.scrollLeft;
        }
        isSyncingRightScroll = false;
    };
}

关于javascript - 我如何将我的js代码迁移到reactjs并调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49517835/

相关文章:

javascript - 将 Node.js/Mongo 应用程序从 Redhat Openshift2 升级到 Openshift3,mongodb URI 是什么?

javascript - react Js : Pass props to React Router's Link component Error

reactjs - React Hooks - useState 值无法更改

javascript - 谷歌地图 - 使用自定义 json 样式*和* TERRAIN View

javascript - 两个脚本之间的jquery冲突

javascript - 尝试理解 Flux 架构

javascript - 如何从 expressjs 的响应中捕获前端错误?

css - 如何在 ReactJS 中使用 CSS 显示图像?

javascript - 为什么在 $.post 方法中使用时全局 var 类型变量在 $.each 之外不可访问?

javascript - 如何使用css在div中创建职业框阴影效果