0
我修改这个例子:http://www.queness.com/post/256/horizontal-scroll-menu-with-jquery-tutorialjQuery的动画问题
的问题是,当我尝试动画水平特定<div>
菜单项。它不起作用。
//Animate the LI on mouse over, mouse out
$('.menu_item').click(function() {
//Make LI clickable
clickedItem = event.target.id;
//alert(clickedItem);
$("#m01").animate({left:"600px"},{duration: 3000,easing: 'easeOutQuad'});
但是如果我改变#m01
说#menu
这是所有菜单项的容器。动画效果良好,垂直滚动将继续完美发挥水平动画的作用。
我想要实现的基本最终效果是菜单将隐藏在屏幕之外,除了一些“选项卡”,并且当这些选项被选中时,将滑出显示菜单项。
的完整代码,请注意我改变了代码从教程从li
项目divs
,因为我原以为,也许我不能动画单独li
项目:
JS斌链接:http://jsbin.com/isama
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Scroll Menu</title>
<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="jquery.easing.1.3.js"></script>
<script type="text/javascript" src="jquery.color.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//Background color, mouseover and mouseout
var colorOver = '#31b8da';
var colorOut = '#1f1f1f';
//Padding, mouseover
var padLeft = '20px';
var padRight = '20px';
//Default Padding
var defpadLeft = $('.menu_item a').css('paddingLeft');
var defpadRight = $('#menu_item a').css('paddingRight');
//The ID of the menu item clicked
var clickedItem;
//Animate the LI on mouse over, mouse out
$('.menu_item').click(function() {
//Make LI clickable
clickedItem = event.target.id;
//alert(clickedItem);
$("#m01").animate({left:"600px"},{duration: 3000,easing: 'easeOutQuad'});
//window.location = $(this).find('a').attr('href');
//}).mouseover(function(){
}).mouseover(function(){
//mouse over LI and look for A element for transition
//$(this).find('a')
//$(this).find('li').animate({left:"100px"},{duration: 500,easing: 'easeOutQuad'});
//$(".menu").animate({left:"-38px"},{duration: 700,easing: 'easeOutQuad'});
//.animate({ paddingLeft: padLeft, paddingRight: padRight}, { queue:false, duration:100 })
//.animate({ backgroundColor: colorOver }, { queue:false, duration:200 });
}).mouseout(function() {
//mouse oout LI and look for A element and discard the mouse over transition
$(this).find('a')
.animate({ paddingLeft: defpadLeft, paddingRight: defpadRight}, { queue:false, duration:100 })
.animate({ backgroundColor: colorOut }, { queue:false, duration:200 });
});
//Scroll the menu on mouse move above the #sidebar layer
$('#sidebar').mousemove(function(e) {
//Sidebar Offset, Top value
var s_top = parseInt($('#sidebar').offset().top);
//Sidebar Offset, Bottom value
var s_bottom = parseInt($('#sidebar').height() + s_top);
//Roughly calculate the height of the menu by multiply height of a single LI with the total of LIs
var mheight = parseInt($('.menu_item').height() * $('.menu_item').length);
//I used this coordinate and offset values for debuggin
//$('#debugging_mouse_axis').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY);
//$('#debugging_status').html(Math.round(((s_top - e.pageY)/100) * mheight/2));
//Calculate the top value
//This equation is not the perfect, but it 's very close
var top_value = Math.round(((s_top - e.pageY) /100) * mheight/2);
//Animate the #menu by chaging the top value
$('#menu').animate({top: top_value}, { queue:false, duration:500});
});
});
</script>
<style>
body {
padding:0;
margin:0 0px;
}
#sidebar {
height:400px;
overflow:hidden;
position:relative;
left:-50px;
background-color:#eee;
}
#menu {
width:100%;
list-style:none;
padding:0;
margin:0;
top:0;
position:relative;
height:100%;
width:300px;
}
.menu_item {
padding:10px 0;
text-align:left;
display:block;
cursor:hand;
cursor:pointer;
}
.menu_item a {
background:url() repeat #1f1f1f;
color:#ddd;
font-family:helvetica, arial, verdana;
font-size:9px;
font-weight:900;
display:inline;
padding:20px 8px 5px 20px;
text-decoration:none;
}
.menu_item span {
font-family:georgia, arial;
font-size:9px;
color:#464646;
}
</style>
</head>
<div id="debugging_mouse_axis"></div>
<div id="debugging_status"></div>
<div id="sidebar">
<div id="menu">
<div id="m01" class="menu_item"><a href="#" id="01">MENU ITEM 1</a></div>
<div id="m02" class="menu_item"><a href="#" id="02">MENU SIZE 2 <span>/2007</span></a></div>
<div id="m03" class="menu_item"><a href="#" id="03">MENU SIZE LONG 3 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 4 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 5 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 6 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 7 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 8 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 9 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 10 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 11 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 12 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 13 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">SUPER LONG MENU MENU MENU MENU SIZE 14 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 15 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 16 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 17 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 18 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 19 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 20 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 21 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 22 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 5 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 23 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 24 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 25 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 26 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 27 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 28 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 29 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 30 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 31 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 32 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU 33 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE 34 <span>/2007</span></a></div>
<div class="menu_item"><a href="#">MENU SIZE LONG 35 <span>/2007</span></a></div>
</div>
</div>
</body>
</html>
你能举一个例子在jsbin.com并发布链接? – 2009-11-09 12:50:41
补充:http://jsbin.com/isama – ian 2009-11-09 14:13:52