JavaScript

ビジュアルエリアの上をスクロールするとコンテンツエリアを被せて表示する方法

ブラウザサイズによって可変するビジュアルエリアの高さをjQueryの.height()を使って取得し、コンテンツエリアの位置に高さを設定後、スクロールするとビジュアルエリア上にコンテンツエリアを被せて表示させてます。

ビジュアルエリアの上をスクロールするとコンテンツエリアを被せて表示するCSS記述

※ビジュアルエリア(.headArea)とコンテンツエリア(.contentsArea)のCSS記述です。必要に応じて変更して下さい。

<style>
body {
  margin: 0;
  padding: 0;
  font-size: 18px;
  text-align: center;
  width:100%;
  margin:0px;
  padding:0px;
}
.headArea{
  position:fixed;
  width: 100%;
  height: auto;
  top: 0;
  left: 0;
}
.headArea h1{
  text-align: center;
  font-size: 28px;
  line-height: 1.8em;
  color: #ffffff;
  position: absolute;
  z-index: 2;
  top: 28%;
  width: 100%;
}
.headArea img{
  width: 100%;
  position: relative;
}
.contentsArea{
  position: relative;
  background-color: #ffffff;
  height: 1500px;
  font-size: 30px;
  padding-top: 200px;
  font-weight: bold;
}
</style>

ビジュアルエリアの上をスクロールするとコンテンツエリアを被せて表示するHTML記述

※ビジュアルエリア(class=”headArea”)内に画像(1.jpg)を用意し、ビジュアルエリアの下にコンテンツエリア(class=”contentsArea”)用意しました。

<div class="headArea">
  <img src="1.jpg" width="100%">
  <h1>ブラウザサイズによって可変するビジュアルエリアの高さを取得し、<br>コンテンツエリアの位置に高さを設定後、<br>スクロールするとビジュアルエリア上にコンテンツエリアを被せて表示させてます。</h1>
</div>
<div class="contentsArea">コンテンツエリア</div>

ビジュアルエリアの上をスクロールするとコンテンツエリアを被せて表示するJavaScriptの記述

※jquery-3.1.1.min.jsファイルを読み込みます。$(“ビジュアルエリア”).height()で高さを取得し、取得した高さを$(“コンテンツエリア”).css(“top”, 高さ)でコンテンツエリアの位置に設定します。ブラウザをリサイズしても同様の処理を行うようにしてます。

<script src="jquery-3.1.1.min.js"></script>
<script>
function contentsAreaPosi(){
  var height=$(".headArea").height();
  $(".contentsArea").css("top", height);
}

$(function(){
  contentsAreaPosi();

  $(window).on('resize',function(){
    contentsAreaPosi();
  });

});
</script>

ビジュアルエリアの上をスクロールするとコンテンツエリアを被せて表示するデモページ

ビジュアルエリアの上をスクロールするとコンテンツエリアを被せて表示するデモページ

 
※流用される場合は自己責任でお願いします。
 デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。