auto
animate對auto支持的很不好,在做動畫的時候很不方便。height,left等屬性都不支持auto。
對于height在每次執(zhí)行animate之前通過.height()方法讀取一下就好深寥。
對于left使用.position().left方法來讀取。不過對于left來說還有一個問題贤牛,在改left或right之中的一個的時候需要把另一個置為auto惋鹅,否則這兩個會互相影響。position()方法并沒有提供right的值殉簸,這時就要自己算出來咯~
var $menu = $("#menu"),
$menuWidthControl = $(".sys-menu-widthControl");
//在頂部菜單欄不夠?qū)挄r闰集,向左或向右滑動
$(".sys-menu-left").mouseenter(function(){
var menuFatherWidth = $menuWidthControl.width();
var menuLeft = $menu.position().left;
var menuWidth = $menu.width();
$menu.css("right",menuFatherWidth-menuLeft-menuWidth);
$menu.css("left","auto");
$menu.animate({"right":"0px"},1000);
});
$(".sys-menu-right").mouseenter(function(){
var menuLeft = $menu.position().left;
$menu.css("left",menuLeft);
$menu.css("right","auto");
$menu.animate({"left":"0px"},1000);
});
$(".sys-menu-right,.sys-menu-left").mouseleave(function(){
$menu.stop();
});