HTML
CSS
JavaScript
広告
画像
0
どのような問題がありますか?

投稿日

更新日

固定バナーをつくる

はじめに

単純だが昔の自分のような初心者のために一応書いておく。

手順

  • 画像とxをボタン記述。
  • デザインする。
  • ×ボタンで閉じるのを実装する。

コード

とりあえず、一気に書いて順々に説明。

<script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!--JQuery-->
<div class="banor"> <!-- 構造化 -->
<div class="banor-relative"> <!-- 相対化のための構造 -->
<img src="https://thumb.photo-ac.com/19/197ef4fbfc004b49183be5b90facc956_w.jpeg" class="banor-image"></img>    <!-- 画像の挿入 -->
<div class="banor-close"></div>  <!-- x ボタン -->
</div>
</div>

<style>
.banor{
  position:fixed;  /*構造の固定*/
  top:0;  /*上に固定*/
  right:0;  /*右に固定*/
  width:100%; /*バナーの横幅*/
  height:100px; /*縦幅*/
}
.banor-relative{ /*構造の相対化*/
  position:relative;
  width:100%;
  height:100%;  //.banor にサイズを合わせる。
} 
.banor-image{
  position:absolute;
  top:0;
  right:0;
  width:100%; /*横幅を合わせる*/
  height:100%; /*縦幅を合わせる*/
}
.banor-close{
  position:absolute;  /*画像の固定*/
  bottom:0;  /*下に固定*/
  right:0;  /*右に固定*/
  background-color:red;  /*赤色*/
  font-size:24px;  /*大きさ*/
  width:48px; /*横幅*/
  text-align:center; /*整形*/
  cursor:pointer; /*カーソルをポインターに*/
  z-index:1; /*xボタンを前面へ*/
}
</style>
<script>
$(".banor-close").click(function(){ //クリックしたらバナーを閉じる
  $(".banor").hide();
}); 
</script>

HTML

まずは純粋なHTMLの部分を見る。

<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>

でJQueryを使う。これはお馴染みだろう。次に

<div class="banor"> <!-- 構造化 -->
<div class="banor-relative"> <!-- 相対化のための構造 -->

で固定や相対化のために構造化する。相対化というのは、そのブロックを基準に要素の位置を定めるということで、これなしに画像やxボタンの位置を決めるとバラバラになってわかりにくい。

<img src="https://thumb.photo-ac.com/19/197ef4fbfc004b49183be5b90facc956_w.jpeg" class="banor-image"></img>

こちらは画像の挿入。画像は適当に拾った。

<div class="banor-close"></div> 

そしてxボタン。ネットでバツは「x」で十分と書いてあり、なるほどと思い使っている。

CSS

次はCSS。大体はコメントで書いたので大事なところだけ。

バナーの固定

バナーを固定するには、次の手順が要る。上記の <div class="banor"> を構造化ブロック、<div class="banor-relative"> を相対化ブロックと呼ぶことにする。

  • 構造化ブロックを絶対位置で固定。
  • 相対化ブロックを画像と×ボタンの基準とする。
  • 画像とxボタンの相対化ブロックとの相対的な位置を指定。

順々に見ていく。

構造化ブロックを絶対位置で固定

 まず

.banor{
  position:fixed;  /*構造の固定*/
  top:0;  /*上に固定*/
  right:0;  /*右に固定*/
  width:100%; /*バナーの横幅*/
  height:100px; /*縦幅*/
}

で絶対位置で固定する。「position:fixed」が絶対位置で固定するという指定。具体的な位置を指定するには

  • top    //上から
  • bottom   //下から
  • right   //右から
  • left    //左から

を指定する。当然 top が決まれば bottom が決まり、right が決まれば left が決まり、またその逆も然りなので2つ指定すれば良い。指定しなければ、元々の場所になる。

相対化ブロックを画像と×ボタンの基準とする

次は相対化。

.banor-relative{ /*構造の相対化*/
  position:relative;
  width:100%;
  height:100%;
} 

「position:relative」はこの要素を基準に子要素の位置を相対的に定めるということである。縦と横の幅を .banor に合わせて、実質的に .banor の位置を基準に画像やxボタンの位置を定めるようにする。

本当は

.banor{
  position:fixed relative;
}

とやりたいが、出来ないらしい。

画像とxボタンの相対化ブロックとの相対的な位置を指定

最後に画像とxボタンの位置を決める。まずは画像

.banor-image{
  position:absolute;
  top:0;
  left:0;
  width:100%; /*横幅を合わせる*/
  height:100% /*縦幅を合わせる*/
}

position:absolute で .banor-relative を基準に絶対的な位置を指定する。top:0 right:0 で右上に配置して、縦と横の幅はバナーの大きさに合わせる。

.banor-close{
  position:absolute;  /*画像の固定*/
  bottom:0;  /*下に固定*/
  right:0;  /*右に固定*/
  background-color:red;  /*赤色*/
  font-size:24px;  /*大きさ*/
  width:48px; /*横幅*/
  text-align:center; /*整形*/
  cursor:pointer; /*カーソルをポインターに*/
  z-index:1; /*xボタンを前面へ*/
}

最後はxボタン。細かい調整は色々あるが、とにかく画像を右下に固定する。これでバナーの外観は整った。

Javascript

最後はxボタンの実装である。しかし機能が単純で JQuery を使うのであっさりと書ける。

$(".banor-close").click(function(){ //クリックしたらバナーを閉じる
  $(".banor").hide();
}); 

.banor-close がクリックされたら、バナー全体を閉じる。

さいごに

今回は単に閉じるだけのバナーをつくった。他にもカーソルを乗せるとフェードインして、離すとフェードアウトするものなども作れる。しかしそれくらいは単純でも、デザインや機能に凝ると大変だし既にあるものを使った方が早い。それでも基本のキくらいは自分でつくれると面白い。

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
tetsuya111

コメント

リンクをコピー
このコメントを報告

banor

バナーの綴りはbannerです。

0
どのような問題がありますか?
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
0
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー