저는 jQuery를 시작했습니다. 내 이해를 높이기 위해 간단한 'ul'드롭 다운 메뉴를 만들고 싶습니다. 기본 흐름은 다음과 같습니다.jQuery 드롭 다운 메뉴 작성에 도움이 필요합니다.
'ul.menu li ul'표시 있음 : 없음 >> 표시가 없음, 가져 오기 & 저장 높이 'this'ul >> 'this'ul을 0으로 설정 높이 >> 차단 디스플레이를 설정 >> 원래 저장 높이
내가 드롭 다운에 대한 몇 가지 좋은 플러그인이 이미 알고에 높이 애니메이션,하지만 난 정말 jQuery를 더 잘 이해하기 위해 내 자신의 롤합니다.
지금까지 내가 (여기 라이브 버전을 확인 - http://jsbin.com/eduvi)를 아주 나쁘게 할 다음을 처리했다 :
var $j = jQuery.noConflict();
$j(document).ready(function(){
// Get height of current hidden ul
$j("ul.menu li").hover(function() {
getHeight($j("ul", this).height());
});
// Set height to 0px
$j('ul.menu li').hover(function() {
$j("ul", this).css({"height":"0px"});
});
// Set display to block
$j('ul.menu li').hover(function() {
$j("ul", this).css({"display":"block"});
});
// Animate height to stored height
$j('ul.menu li').hover(function getHeight(h) {
$j('ul:first', this).stop().animate({ "height" : "100%" } , 400);
});
// Display height of current hidden ul
function getHeight(h) {
$j("div.test").text("The height for the hidden ul is " + h + "px."); }
});
내가 그것을 사용하는 얻는 방법을 알고 싶습니다 100 % 대신에 원래의 높이를 저장하십시오.
그리고 둘째로는,이 모두가 단 몇 줄 아래로 응축 될 수 있는지 해요,하지만 정말 어떻게 아직 할 수있는 단서가 없습니다.
도움을 주시면 대단히 감사하겠습니다!
UPDATE : 좋아, 그럼 내가 거의 다입니다. Marve 코드를 기본으로 게시하고 다른 비트로 작업했습니다. 유일하게 작동하지 않는 점은 숨겨진 UL의 높이를 모든 끝에서 다시 원래 높이로 재설정하고 디스플레이를 none으로 설정해야하므로 다시 내걸 준비가 된 것입니다. 왜 그것이 효과가 없을지 모르는 어떤 아이디어? 대신 $ ('ul.menu 리')의
('ul.menu> 리')사용을 $ : 여기
$j('ul.menu > li').hover(
function() { var ulHeight = $j('ul', this).height(); $j(this).children('ul').css({height: 0}).stop().animate({height: ulHeight}, 400); },
function() { $j(this).children('ul').stop().animate({height: 0}, 400).css({height: ulHeight, display:none}); }
);
고마워, 실제로 시작했는데, 문제는 당신이 그들과 함께 정지 기능을 사용할 수 없다는 것인데, 메뉴가 하나씩 세고 실행될 때 수많은 롤오버를 수행하면 문제가 발생한다. 그래서 나는 animate를 사용할 수 있도록이 경로로 가기로 결정했습니다. 또한, 아마도 추가 하위 메뉴가 수평으로 튀어 나오도록 계획하고 있으므로 다시 애니메이션을 사용해야 할 것입니다. –
하위 메뉴에'.animate'를 사용해야 하겠지만, 슬라이드 기능을 사용하는 것이 왜 최상위 레벨에서는 작동하지 않는지 잘 모르겠습니다. 참고 : 내 코드 스 니펫에 대한 호버 기능 내의 선택기를 수정하여 직접 자손 메뉴 만 애니메이션되도록했습니다. – dcharles
여기에 언급 한 것과 똑같은 내용이 있습니다. http://jqueryfordesigners.com/broken-repeating-animations/ - 반복해서 메뉴를 넘기고 멀리 이동하면 계속해서 실행됩니다. –