위 화면 같이 메뉴를 만들어서 구분(학부/학과 등) 메뉴를 누르면 접히고 펴지며 세부메뉴를 누르면 페이지가 이동하며 해당 페이지인 경우는 파란색으로 색상을 반전시키고 싶었다. 특히, URL 이 변해도 메뉴가 체크되도록 하고 싶었다.
Bootstrap에서 collapse라는 것을 사용하면 쉽게 만들 수 있는데, 특히 accordion 속성을 주면 접었다 폈다 하는 메뉴를 쉽게 만들 수 있다. 또한, 클래스 속성에 'in' 이 들어가면 메뉴가 펴지고, 없으면 접힌다. 링크 테그의 클래스 속성에 'active' 가 붙으면 위 사진처럼 메뉴가 활성화 된다. 소스코드는 아래와 같다. 아아...역시 자바스크립트나 제이쿼리 공부를 더 해야지 안되겠다..
> Menu.ctp
|
// 소스코드 일부...이 코드 복사하면 메뉴 여러개 쉽게 생성 가능하다.
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse1">
施設・設備・講義室</a>
</h4>
</div>
<div id="collapse" class="panel-collapse collapse in">
<div class="panel-body">
<div id="collapse" class="list-group">
<a href="/campus" class="list-group-item">キャンパスマスタ</a>
<a href="/facility" class="list-group-item">施設マスタ</a>
<a href="/equipment" class="list-group-item">設備マスタ</a>
<a href="/room" class="list-group-item">講義室マスタ</a>
</div>
</div>
</div>
</div>
// 메뉴를 활성화 시키는 테그. URL을 불러와서 링크태그와 비교해서 링크주소가 없으면 비활성화, 그 외에는 활성화
<script type="text/javascript">
$(document).ready(function () {
var url = window.location;
$('div.panel-body a[href="'+ url + '"]').addClass('active');
$('div.panel-body a').filter(function() {
return url.href.indexOf(this.href) != -1 // 즉 URL주소 안에 링크가 없는 경우 -1을 리턴
}).addClass('active');
});
</script>
|
댓글
댓글 쓰기