상세 컨텐츠

본문 제목

[jquery] 웹접근성 관련 slideDown을 사용하지 않은 아코디언 메뉴

헉!!/javascript

by 권태성 2012. 11. 28. 19:28

본문

처음 메뉴를 클릭하면 서브 메뉴들이 내려오는 스크립트를 만들때 jquery의 .hide, .show, slideDown 을 사용했었는데


위 함수들은 스타일에 display:none 혹은 display:block 이 들어가게 되어

스크린 리더기를 통해 테스트 하는 웹 접근성에 문제가 있다고 하여


관련된 함수들이 있는 jquery core를 수정해야되나.. 고민을 하다가 animate 함수로 해결하였습니다.


function menuclick(index){

var height = new Array(1); //메뉴가 내려올 height를 담은 배열

height[0] = '280px';

for(var i=1; i<8; i++){ //열려야 하는 서브메뉴 7개를 처음에는 모두 숨깁니다.

$("#sub"+i).addClass("hidden"); //hidden 클래스는 css를 통해 display:none과 비슷한 기능을 하도록 미리 만들어진것입니다.

}

$("#sub"+index).removeClass("hidden"); //현재 눌려진 메뉴의 hidden class를 지워줍니다.

$("#sub"+index).animate({ //hidden 클래스는 지웠지만 일단은 보여지지 않아야 하므로 height 0으로 맞춰 보이지 않도록 합니다.

'height' : '0px'

},0);

$("#sub"+index).animate({ //height 0 이었던 서브메뉴가 배열에 담겨진 height 만큼 늘어납니다.

'height' : height[index]

},600);

}


간단하게 설명하자면 이렇습니다.


암튼 오늘도 한고비 엉성하게 겨우 넘기네요..



관련글 더보기