LoginSignup
4
3

More than 5 years have passed since last update.

「addEventListener」を使って、「続きを読む」の仕掛けを作ってみる。

Last updated at Posted at 2014-10-31

ココでは、前回に投稿した「イベント処理」の中の「addEventListener」をりようして1つのサンプルを作ってみようと思います。

完成イメージ↓

js_ivent_004.png

完成コード

まず先に完成のコードを書きます。以下です。


<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>「続きを読む」を出す</title>

<style type="text/css">
  .cont {
      display: none;
  }
</style>
<script type="text/javascript">
  window.addEventListener('load', function() {
    document.querySelector('#seminar+p a').addEventListener('click', function(e) {
      e.preventDefault();
      document.querySelector('#seminar+p a').style.display = 'none';
      document.querySelector('#seminar~.cont').style.display = 'block';
    }, false);  
  }, false);
</script>
</head>
<body>
<h1 id="seminar">セミナーについて</h1>
<p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト<a href="#">続きを読む</a></p>
<p class="cont">テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
</body>
</html>

① 続きの部分を表示されない様にする。

最初に「続き」にあたる部分の<p>タグを、
<p class="cont">とクラス指定してあらかじめ冒頭部分の「スタイルシート」で


<style type="text/css">
  .cont {
      display: none;
  }
</style>

「display: none」にして、表示されない様にします。

② クリックすると続きが表示されるjavascriptを書く

次に「続きを読む」をどの様に指定するかですが、こういう事です。

「IDの#seminarの中の「最初の<p>タグ=+p」の中のa要素」=#seminar+p a

↑これがクリックされると続きの部分以下↓

「IDの#seminarの以降に出てくる「class="cont"」で指定した部分」=#seminar~.contが表示される。

この様に動かすためjavascriptは以下になります。


<script type="text/javascript">
  window.addEventListener('load', function() {
    document.querySelector('#seminar+p a').addEventListener('click', function(e) {
      e.preventDefault();
      document.querySelector('#seminar+p a').style.display = 'none';
      document.querySelector('#seminar~.cont').style.display = 'block';
    }, false);  
  }, false);
</script>


上のコードの
document.querySelector('#seminar+p a').style.display = 'none';

ではクリックした後は「続きを読む」の部分は表示されない様にあえて設定しています。

その代わり↓

document.querySelector('#seminar~.cont').style.display = 'block';

と「display=ブロック」にする事によって、クリック後に表示される様になる仕組みです。

完成サンプル

以下完成サンプルです。

結果 : http://m-uehara.com/js_002/js_ivent_004.html

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3