React ScrollTop问题

时间:2018-02-19 23:37:04

标签: javascript css reactjs

我有一长串包含在固定高度UL标签中的物品。理想情况下,当单击列表项时,我想滚动到列表顶部加上一个偏移量(比如10px左右)。

我的ListItem组件上有一个refSet,它通过onClick事件传递。在我的引用上调用scrollIntoView()按预期工作并滚动到列表的顶部,但是尝试在我的ref上手动设置scrollTop值什么也没做,似乎总是停留在0上。

此处显示的示例:https://jsfiddle.net/zsh2v1/sc9ux3dd/

onListItemClick(e, ref) {
    ref.scrollIntoView();
    ref.scrollTop += 10;
    console.log(ref.scrollTop); // why is this still zero?
}

那么为什么这个scrollTop值不会改变?是否有更好的方法来设置此偏移量?类似的帖子似乎指出你的UL风格如何,但我已经在UL上设置了固定的高度。我也试过把它放在一个setTimeout()调用中,就像推荐的其他帖子一样,但是这里也没有任何效果。

1 个答案:

答案 0 :(得分:0)

由于某些原因我也有这个问题,但是没有用。我使用jQuery修复它

import React, { Component } from 'react';
import $ from 'jquery';

componentDidMount(){
       $(window).on('scroll', function() {
        let topOffset = $(this).scrollTop();

            console.log(topOffset);

        });
    }

当您移动浏览器的滚动条并检查控制台时,值会更改。