LoginSignup
0
0

More than 5 years have passed since last update.

[test011] dt-ddのアコーディオンメニューでセパレートの線を引く

Last updated at Posted at 2017-11-16

dt-ddのアコーディオンメニューでセパレートの線を引く

仕様

dt-ddのアコーディオンメニューでセパレートの線を引く

動作

  • dtを押すとddが開き再度押すと消える。
  • またddが開いている状態で別のdtを押すとすでに開いているddは消える

パターン

パターンは3つ。

  • menu1

ddには常に下線がついていて開くと下線がみえ、閉じると消える

  • menu2

dtを押すとddに下線がつき、別のdtを押すと自分のddに下線がひかれ、元のddの下線が消えてからスライドする

  • menu3

dtを押すとddに下線がつき、別のdtを押すと、まずスライドしてから自分のddに下線がひかれ、元のddの下線が消えてからスライドする

ソース

html

test_11.htm
<html>
<head>
<link rel="stylesheet" type="text/css" href="test_11.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/j<script type="text/javascript" src="test_11.js"></script>
<title>test11 dt-ddのアコーディオンメニューでセパレートの線を引く</title>
</head>
<body>
<h1>test11 dt-ddのアコーディオンメニューでセパレートの線を引く</h1>
<h2>menu1</h2>
<dl id="menu1" class="accordion">
  <dt>アコーディオン1</dt>
  <dd>
    <p>アコーディオン1の内容1</p>
    <p>アコーディオン1の内容2</p>
  </dd>
  <dt>アコーディオン2</dt>
  <dd>
    <p>アコーディオン2の内容1</p>
    <p>アコーディオン2の内容2</p>
  </dd>
  <dt>アコーディオン3</dt>
  <dd>
    <p>アコーディオン3の内容1</p>
    <p>アコーディオン3の内容2</p>
  </dd>
</dl>
<h2>menu2</h2>
<dl id="menu2" class="accordion">
  <dt>アコーディオン4</dt>
  <dd>
    <p>アコーディオン4の内容1</p>
    <p>アコーディオン4の内容2</p>
  </dd>
  <dt>アコーディオン5</dt>
  <dd>
    <p>アコーディオン5の内容1</p>
    <p>アコーディオン5の内容2</p>
  </dd>
  <dt>アコーディオン6</dt>
  <dd>
    <p>アコーディオン6の内容1</p>
    <p>アコーディオン6の内容2</p>
  </dd>
</dl>
<h2>menu3</h2>
<dl id="menu3" class="accordion">
  <dt>アコーディオン7</dt>
  <dd>
    <p>アコーディオン7の内容1</p>
    <p>アコーディオン7の内容2</p>
  </dd>
  <dt>アコーディオン8</dt>
  <dd>
    <p>アコーディオン8の内容1</p>
    <p>アコーディオン8の内容2</p>
  </dd>
  <dt>アコーディオン9</dt>
  <dd>
    <p>アコーディオン9の内容1</p>
    <p>アコーディオン9の内容2</p>
  </dd>
</dl>
</body>
</html>

css

test_11.css
.accordion dd.bor{
  border-bottom: solid 1px;
}

javascript

test_11.js
$(function(){
  $('.accordion dd').hide();
  $('#menu1.accordion dd').addClass('bor').prev('dt').on('click',function(){;
    $(this).next('dd').slideToggle().siblings('dd').slideUp();
  });
  $('#menu2.accordion dt').on('click',function(){
    $(this).next('dd').addClass('bor').slideToggle().siblings('dd').removeClass('bor').slideUp();
  });
  $('#menu3.accordion dt').on('click',function(){
    var dd=$(this).next('dd');
    $.when(dd.slideToggle().siblings('dd').slideUp()).done(function(){
        dd.addClass('bor').siblings('dd').removeClass('bor');
      });
  });
});

関連

0
0
0

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
0
0