条件付きでclassNameをcssモジュールに変更(React)
P粉799885311
P粉799885311 2023-08-17 18:10:17
0
1
450

ユーザーが Web サイトのナビゲーション バーの上にマウスを置いたときにアニメーションを再生しようとしています。マウスがナビゲーションバー上にあるかどうかに基づいて CSS モジュールを変更することでこれを実現しようとしています。このコードが機能しない理由を理解しようとしています。ご協力をよろしくお願いいたします。

Navbar.jsx:

import React, { useState } from "react"; import { Link } から "react-router-dom"; 「../styles/Navbar.module.css」からスタイルをインポートします。 const Navbar = () => { const [クラス名, setクラス名] = useState("行後"); 戻る (
      
setclassname("line::before")} onmouseleave="{()" setclassname("line-after")}> <ナビ> <「/about」へのリンク ボブ
ジョーンズ
  • ; <リンク先: "/about" className="about-page"> について
  • ; <リンク先="/resume" className="resume-page"> 再開する
  • ; <「/contact」へのリンク className="contact-page"> 接触
); }; デフォルトのナビゲーションバーをエクスポート;

Css モジュール:

.line::before { コンテンツ: ""; 位置: 絶対; トップ: 0; 左: 0; 幅: 55ピクセル; 高さ: 1px; 背景: 黒; アニメーション名: アニメート; アニメーション期間: 1 秒。 } .line-after { マージン: 40 ピクセル 40 ピクセル 40 ピクセル 40 ピクセル; 幅: 55ピクセル; 高さ: 1px; 背景: 白; 位置: 相対的; } @keyframes アニメーション化 { 0% { 左: 0; } 100% { 左: 100%。 } }

マウスがナビゲーション バーから離れてナビゲーション バーに入ったときの className の状態を変更しています。ただし、状態変数 className は決して使用されないと書かれているので、それが問題だと思います。修正方法がわかりません。

P粉799885311
P粉799885311

全員に返信 (1)
P粉124890778

これは、React ロジックをまったく使用せずに実現できます。要素のクラスを手動で動的に変更する代わりに、(現在行っているように) CSS アニメーションと CSS 疑似クラス (この場合は :hover) を使用するだけです。

https://developer.mozilla.org/en-US/docs/Web/CSS/:hover

これが機能するかどうかを確認してください:ホバー時にアニメーションを再生し、非アクティブなホバー時に一時停止する方法

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!