Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的滑入/滑出动画在jQuery中不起作用_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 我的滑入/滑出动画在jQuery中不起作用

Javascript 我的滑入/滑出动画在jQuery中不起作用,javascript,jquery,html,css,Javascript,Jquery,Html,Css,以下是网站: kotechweb.com/new_focus/page/proposal 请注意,在左角有一个菜单按钮,如果菜单打开,我希望按钮滑动并隐藏菜单;另一方面,如果菜单关闭,则滑动按钮并显示菜单 代码是 var is_closed=false; $(“#菜单_btn”)。在(“单击”,功能(){ 如果(是否关闭){ $(“#菜单_右ul”).show(“幻灯片”{方向:“左”},1000); $(this.show(“幻灯片”{direction:“left”},1000); }否则

以下是网站:

kotechweb.com/new_focus/page/proposal
请注意,在左角有一个菜单按钮,如果菜单打开,我希望按钮滑动并隐藏菜单;另一方面,如果菜单关闭,则滑动按钮并显示菜单

代码是

var is_closed=false;
$(“#菜单_btn”)。在(“单击”,功能(){
如果(是否关闭){
$(“#菜单_右ul”).show(“幻灯片”{方向:“左”},1000);
$(this.show(“幻灯片”{direction:“left”},1000);
}否则{
$(“#menu_right ul”).hide(“slide”,{direction:“left”},1000);
$(this.show(“幻灯片”{direction:“left”},1000);
}
is_closed=!is_closed;
});
但是,目前菜单\u btn未正确设置动画;它不会滑动,只会隐藏


如何解决这个问题?

也许问题在于这两个动画是同时完成的? 正在添加“队列:错误”(警告:未测试代码):

摘自本问题:

您实现的
show()
hide()
方法实际上属于jQuery UI(而不是jQuery)

由于jQuery内置的
show()
hide()
不支持特效,为了解决您的问题,我使用jQuery的方法复制了大致相同的情况

以下总结了这一切:

  • 计算
    #菜单_rightul
    的宽度,例如在变量
    幻灯片中

  • 关闭时将
    #menu#u right ul
    #menu#u btn
    left
    属性设置为与
    滑动面板
    相同的值,打开后设置为
    0

    //while closing
    $(this).siblings('#menu_right ul').animate({left: -slideSpan}, 1000, 'swing');
    $(this).animate({left: -slideSpan}, 1000, 'swing');
    
    // ...
    // while opening
    $(this).siblings('#menu_right ul').animate({left: 0}, 1000, 'swing');
    $(this).animate({left: 0}, 1000, 'swing');
    
  • 注意:要使
    动画()
    正常工作,请确保
    #menu right
    #menu right ul
    #menu btn
    的CSS位置设置为相对位置,并且
    #menu right ul
    #menu btn
    都向左浮动


    通过
    animate()?只是检查一下。实际上它们在jQuery中,但是jQuery和jqueryui中的是完全不同的。退房,哦,你说得对。我的错误。我通常都会同时使用这两种语言,并被错误地记住。
    
    //while closing
    $(this).siblings('#menu_right ul').animate({left: -slideSpan}, 1000, 'swing');
    $(this).animate({left: -slideSpan}, 1000, 'swing');
    
    // ...
    // while opening
    $(this).siblings('#menu_right ul').animate({left: 0}, 1000, 'swing');
    $(this).animate({left: 0}, 1000, 'swing');