【React】实现锚点功能、点击按钮到顶部

先看需要实现的效果图:

实现方法:给标签添加id属性(往哪跳,就给哪个标签加),然后用下面的scrollToAnchor方法,废话不多说,直接上代码:

import React, { Component } from 'react';
class ComA extends Component {
    constructor(props) {
        super(props);
        this.state = {

        };
    }
    scrollToAnchor = (anchorName) => {
        if (anchorName) {
            let anchorElement = document.getElementById(anchorName);
            if (anchorElement) { anchorElement.scrollIntoView(); }
        }
    }
    render() {
        var doms = [];
        for (var i = 0; i < 24; i++) {
            doms.push(<div>
                    <h3 id={'title' + i}>title{i}</h3>
                    <p>content{i}</p>
                </div>);
        }
        return (
            <div>
                <p id='top' >我是顶部</p>
                {
                    doms.map(function (value) {
                        return value;
                    })
                }
                <button onClick={this.scrollToAnchor.bind(this, 'top')} >点我到顶部</button>
                <br></br>
                <button onClick={this.scrollToAnchor.bind(this, 'title6')}>点我到title6的位置</button>
            </div>
        );
    }
}

export default ComA;

 

 

启蒙链接:https://www.jianshu.com/p/3ef8f490873d

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值