Anchor

Hyperlinks to scroll on one page.

When To Use#

For displaying anchor hyperlinks on page and jumping between them.

Examples

The simplest usage.

expand codeexpand code
import { Anchor } from 'antd';

const { Link } = Anchor;

ReactDOM.render(
  <Anchor>
    <Link href="#components-anchor-demo-basic" title="Basic demo" />
    <Link href="#components-anchor-demo-static" title="Static demo" />
    <Link href="#components-anchor-demo-basic" title="Basic demo with Target" target="_blank" />
    <Link href="#API" title="API">
      <Link href="#Anchor-Props" title="Anchor Props" />
      <Link href="#Link-Props" title="Link Props" />
    </Link>
  </Anchor>,
  mountNode,
);

Clicking on an anchor does not record history.

expand codeexpand code
import { Anchor } from 'antd';

const { Link } = Anchor;

const handleClick = (e, link) => {
  e.preventDefault();
  console.log(link);
};

ReactDOM.render(
  <Anchor affix={false} onClick={handleClick}>
    <Link href="#components-anchor-demo-basic" title="Basic demo" />
    <Link href="#components-anchor-demo-static" title="Static demo" />
    <Link href="#API" title="API">
      <Link href="#Anchor-Props" title="Anchor Props" />
      <Link href="#Link-Props" title="Link Props" />
    </Link>
  </Anchor>,
  mountNode,
);

Anchor target scroll to screen center.

expand codeexpand code
import { Anchor } from 'antd';

const { Link } = Anchor;

class AnchorExample extends React.Component {
  state = {
    targetOffset: undefined,
  };

  componentDidMount() {
    this.setState({
      targetOffset: window.innerHeight / 2,
    });
  }

  render() {
    return (
      <Anchor targetOffset={this.state.targetOffset}>
        <Link href="#components-anchor-demo-basic" title="Basic demo" />
        <Link href="#components-anchor-demo-static" title="Static demo" />
        <Link href="#API" title="API">
          <Link href="#Anchor-Props" title="Anchor Props" />
          <Link href="#Link-Props" title="Link Props" />
        </Link>
      </Anchor>
    );
  }
}

ReactDOM.render(<AnchorExample />, mountNode);

Do not change state when page is scrolling.

expand codeexpand code
import { Anchor } from 'antd';

const { Link } = Anchor;

ReactDOM.render(
  <Anchor affix={false}>
    <Link href="#components-anchor-demo-basic" title="Basic demo" />
    <Link href="#components-anchor-demo-static" title="Static demo" />
    <Link href="#API" title="API">
      <Link href="#Anchor-Props" title="Anchor Props" />
      <Link href="#Link-Props" title="Link Props" />
    </Link>
  </Anchor>,
  mountNode,
);

Customize the anchor highlight.

expand codeexpand code
import { Anchor } from 'antd';

const { Link } = Anchor;

const getCurrentAnchor = () => {
  return '#components-anchor-demo-static';
};

ReactDOM.render(
  <Anchor affix={false} getCurrentAnchor={getCurrentAnchor}>
    <Link href="#components-anchor-demo-basic" title="Basic demo" />
    <Link href="#components-anchor-demo-static" title="Static demo" />
    <Link href="#API" title="API">
      <Link href="#Anchor-Props" title="Anchor Props" />
      <Link href="#Link-Props" title="Link Props" />
    </Link>
  </Anchor>,
  mountNode,
);

Listening for anchor link change.

expand codeexpand code
import { Anchor } from 'antd';

const { Link } = Anchor;

const onChange = link => {
  console.log('Anchor:OnChange', link);
};

ReactDOM.render(
  <Anchor affix={false} onChange={onChange}>
    <Link href="#components-anchor-demo-basic" title="Basic demo" />
    <Link href="#components-anchor-demo-static" title="Static demo" />
    <Link href="#API" title="API">
      <Link href="#Anchor-Props" title="Anchor Props" />
      <Link href="#Link-Props" title="Link Props" />
    </Link>
  </Anchor>,
  mountNode,
);

API#

Anchor Props#

PropertyDescriptionTypeDefaultVersion
affixFixed mode of Anchorbooleantrue
boundsBounding distance of anchor areanumber5(px)
getContainerScrolling container() => HTMLElement() => window3.4.0
offsetBottomPixels to offset from bottom when calculating position of scrollnumber-
offsetTopPixels to offset from top when calculating position of scrollnumber0
showInkInFixedWhether show ink-balls in Fixed modebooleanfalse
onClickset the handler to handle click eventFunction(e: Event, link: Object)-3.9.0
getCurrentAnchorCustomize the anchor highlight() => string-3.22.0
targetOffsetAnchor scroll offset, default as offsetTop, examplenumberoffsetTop3.22.0
onChangeListening for anchor link change(currentActiveLink: string) => void3.24.0
PropertyDescriptionTypeDefaultVersion
hreftarget of hyperlinkstring
titlecontent of hyperlinkstring|ReactNode
targetSpecifies where to display the linked URLstring
SkeletonBackTop