根据搜索的内容使滚动条返回顶部

9 篇文章 0 订阅

需求:

有两个div的区域来展示字段,字段比较多,区域内设置纵向滚动条,要求可以根据字段名进行对div区域内的字段进行搜索,搜到的字段展示在第一个位置,同时滚动条自动回到顶部。

思路:

1. 对两个div设置高度height,同时设置overFlow-Y:auto属性,显示纵向滚动条。

2. 拿到的所有字段,处理成数组进行遍历展示。对搜索的数据先从数组中删除,再使用splice方法重新插入,放在第一个位置。

  getFieldNewValue = fieldItem => {
    const inputValue = _.get(this.props.form.getFieldsValue(), 'inputValue');
    let fieldItemNew = _.cloneDeep(fieldItem);// 深拷贝拿到一个新的变量,且不影响老的变量
    if (inputValue) {
      const searchValue = _.find(fieldItem, i => i.name === inputValue); // 找到搜索数据
      fieldItemNew = _.filter(fieldItemNew, item => item.name !== inputValue); // 删除
      fieldItemNew.splice(0, 0, searchValue);// 重新插入数组第一个位置
      return fieldItemNew;
    }
    return fieldItem;
  };

3. 在搜索数据同时,根据div的id属性,使用scrollTo(0,0)方法使滚动轴显示在顶部。(注意:当多个地方同时用到这个组件时,要保证每个页面的div的id属性是动态变化,否则会出现多个相同的地方,只有一个会正常滚动到顶部的现象)

  handleSelected = value => {
    const { urlId } = this.props;
    document.getElementById(`${urlId}T1`).scrollTo(0, 0);
    document.getElementById(`${urlId}T2`).scrollTo(0, 0);
  };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值