いくつかのリンクを持つコンポーネントがあります。アクティブなリンクの下にアニメーション(position: absolute
)行があります。だからleft
に下線を付ける前に、アクティブなリンクのoffset().left
を見つけ出す必要があります。しかしどうですか?最初にレンダリングする前に、要素はありません。最初のレンダリングの前にrefでコンポーネントをアクセスする
render() {
var activeLink = 1; // For example, active link is the second link.
var underlineStyle = {
left: $hereINeedActiveLink.offset().left - $hereINeedContainer.offset().left;
};
return (
<nav ref='container'>
<a href='/' ref='link1'>Link 1</a>
<a href='/' ref='link2'>Link 2</a>
<a href='/' ref='link3'>Link 3</a>
<div style={underlineStyle} />
</nav>
);
}
返信ありがとうございますが、 'border-bottom'や' text-decoration'を使うことはできません。なぜなら、アクティブリンクを変更した後のリンク間のアンダーラインのアニメートはできないからです。 – Vesmy
@Vesmy okその後、最初の位置にマウントしました –
ありがとうございます。 :-) – Vesmy