【React】スクロールしてもあるエリアを固定したい!要素の固定をする

検索項目エリアを固定するためにはCSS でスタイリングを行う方法が一般的です

position: fixed を使用すると、スクロールしてもその要素が常に画面の特定位置に固定されます


1. CSSのスタイリング

.fixed-search-area {
  position: fixed;
  top: 0;
  width: 100%;
  background-color: white;
  z-index: 1000;
}

.results-area {
  margin-top: 100px; /* 検索項目エリアの高さに合わせる */
}

2. Reactコンポーネント例

import React from 'react';
import './App.css';

const SearchComponent: React.FC = () => {
  return (
    <div className="fixed-search-area">
      <h2>検索項目</h2>
      {/* 検索フォームやフィルタ項目をここに追加 */}
    </div>
  );
};

const ResultsComponent: React.FC = () => {
  return (
    <div className="results-area">
      <h2>検索結果</h2>
      {/* 検索結果リストをここに表示 */}
      <p>検索結果1</p>
      <p>検索結果2</p>
      <p>検索結果3</p>
      {/* 結果が長くなればスクロール */}
    </div>
  );
};

const App: React.FC = () => {
  return (
    <div>
      <SearchComponent />
      <ResultsComponent />
    </div>
  );
};

export default App;
  • fixed-search-area: 検索項目エリアに position: fixed を適用しているため、スクロールしても上部に固定されます
  • results-area: 検索結果エリアは検索項目エリアが固定されているため、その高さに応じて margin-top を調整しています


これで、検索項目エリアが固定され、下にスクロールしても常に画面上部に表示されるようになります

cssで簡単にコントロールできるんですよね~

ぜひお試しください!

是非フォローしてください

最新の情報をお伝えします