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: React.MouseEvent<HTMLElement>,
    link: {
      title: React.ReactNode;
      href: string;
    },
  ) => {
    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 React, { useState, useEffect } from 'react';
import { Anchor } from 'antd';

const { Link } = Anchor;

const AnchorExample: React.FC = () => {
  const [targetOffset, setTargetOffset] = useState<number | undefined>(undefined);
  useEffect(() => {
    setTargetOffset(window.innerHeight / 2);
  }, []);
  return (
    <Anchor targetOffset={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: string) => {
  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() => window
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)-
getCurrentAnchorCustomize the anchor highlight() => string-
targetOffsetAnchor scroll offset, default as offsetTop, examplenumberoffsetTop
onChangeListening for anchor link change(currentActiveLink: string) => void
PropertyDescriptionTypeDefaultVersion
hreftarget of hyperlinkstring
titlecontent of hyperlinkstring|ReactNode
targetSpecifies where to display the linked URLstring
SkeletonBackTop