Javascript11.5(フッター)

3:残りの画面の実装

イメージ

index.htmlに以下の記述を追加ヒーロースライダーの直下

<main>
  <section class="world">
    <div class="world__inner">
      <div class="world__img cover-slide">
    <img class="img-zoom" src="images/Birthday.jpg" alt=""/>
    </div>
     <div class="world__texts appear left">
      <div class="world__texts-inner">
       <div class="world__title main-title item">
      <span class="purple">Floroj </span>
     <span>de la mondo</span>
   </div>
   <div class="world__sub sub-title item">世界のお花をあなたに</div>
    <div class="world__description item">
     <p>世界150ヶ国の花を<br />あなたにお届けします。</p>
     <p>あなたの望む花がきっと見つかります。</p>
     </div>
    <div class="world__btn item">
     <button class="btn filled">もっと詳しく</button>
    </div>
   </div>
  </div>
 </div>
</section>

_600up.scssに以下の記述を追加

.world {
  &__inner {
    padding: 50px;
}
  &__texts,
  &__img {
    flex-basis: 47%;
}

  &__texts {
    display: flex;
// 文字を下揃えにするときに便利な設定
    align-items: flex-end;
}
}

_960up.scssに以下の記述を追加

.world {
  &__img {
    height: 400px;
}

  &__description {
    margin-bottom: 40px;
}
  &__title {
// アニメーションを表示するための設定
  &::before {
//960pxより上はアニメーションを表示する
    display: block;
  }
 }
}

_1280up.scssに以下の記述を追加

// Stylesheet: 1280px以上のモニタで適用

  .world {
  &__inner {
    padding: 50px 150px;
 }
}

_base.scssに以下の記述を追加

.world {
  @extend .content-width;
  @extend .mb-lg;
// 親要素でローカルスタッキングコンテキストを作るために必要
  &__inner {
    @extend .flex;
    justify-content: space-between;
    padding: 15px;
    background-color: $cBgGray;
// 下の2つはローカルスタッキングコンテキストを作る設定
    position: relative;
    z-index: 0;
}

  &__title {
// 横線の位置決め
    position: relative;
// 疑似要素で出力する
@include p-base(
$display: none,
$width: 100px,
$height: 1px,
$top: 50%,
$left: -120px
) {
// 棒線が伸びるアニメーション
  background-color: $cBlack;
  transform: translateY(-50%) scaleX(0);
// 右側を中心に伸びるアニメーション
  transition: transform 0.3s ease 1.6s;
  transform-origin: right;
 }
}

  &__sub {
    @extend .mb-sm;
}

  &__img {
    height: 300px;
    @extend .mb-sm;
// アニメーションが終わったときに表示したいので
    transition: box-shadow 1ms linear 0.8s;
  & > img {
    position: relative;
// ボックスシャドウを背面につけるための設定
    z-index: -1;
// 画像には基本object-fitをつける
    object-fit: cover;
// 画像の上部分を中心にしたいので
    object-position: top;
// 外側の親要素タテヨコ100%で画像が表示される
    width: 100%;
    height: 100%;
}

  &.inview {
// 画面内に入ったとき内側にボックスシャドウを付ける設定
    box-shadow: inset 0 0 30px $cBlack;
 }
}

  &__texts {
    @extend .pb-sm;
// 横線のアニメーションの設定
  &.inview {
  & .world__title::before {
//右から左に線が伸びるように
    transform: translateY(-50%);
  }
 }
}
}

アニメーションの部分はあとでJavaScriptで実装する

画面のサイズを変えて問題なければ次へ

4:Flexboxでフッターの作成

イメージ

index.htmlに以下の記述を追加(Popular Place直下から)

<footer class="footer appear up">
  <div class="logo item">
  <img src="images/logo.svg" alt="" class="logo__img" />
    <span class="logo__floroj">Floroj</span>
    <span class="logo__de-la-mondo"> de la mondo</span>
  </div>
    <nav class="footer__nav">
      <ul class="footer__ul">
<li class="footer__li item"><a href="#">Service</a></li>
<li class="footer__li item"><a href="#">Contact</a></li>
<li class="footer__li item"><a href="#">Company</a></li>
<li class="footer__li item"><a href="#">Sitemap</a></li>
      </ul>
      <div class="footer__copyright item">
        © Ota
      </div>
     </nav>
</footer>

_base.scssに以下の記述を追加

.footer {
  padding: 60px 0;
    @extend .content-width;

  &__nav {
    @extend .flex;
    justify-content: space-between;
// 中央揃えにする
    align-items: center;
    text-align: center;
}

  &__ul {
  @extend .flex;
// パディングやマージンを初期化
    padding: 0;
    margin: 0;
    list-style: none;
}

  &__li {
    padding: 0;
    margin: 10px;

  & > a {
    color: $cSubTitle;
 }
}

  & .logo {
    font-size: 38px;
// 中央揃えにする
    justify-content: center;
 }
}
.logo {
    font-size: 42px;
    display: flex;

  &__img {
    width: 0.7em;
}

  &__floroj {
    color: $cWineRed;
  }
}

_600up.scssに以下の記述を追加

.footer {
  & .logo {
// 左寄りにする。右寄りはflex-end
    justify-content: flex-start;
}

  &__li {
// 検証を使いながら位置調整
    margin-left: 0;
    margin-right: 30px;
 }
}

_960up.scssに以下の記述を追加

.footer {
  &__li {
    justify-content: flex-start;
 }
}

画面のサイズを変えて異常がないのを確認できたらフッターはOK

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です