Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Jquery 替换“;切换";加上;动画化;_Jquery_Navigation_Toggle - Fatal编程技术网

Jquery 替换“;切换";加上;动画化;

Jquery 替换“;切换";加上;动画化;,jquery,navigation,toggle,Jquery,Navigation,Toggle,单击菜单链接时,此jQuery代码段显示或隐藏子菜单项: jQuery(document).ready(function($) { $('.main-navigation ul li a').click(function() { var li = $(this).closest('li'); if(li.has('ul')) li.find('ul').toggle(100); }); }); 如何使用“动画”而不是“切换”实现类似效果 提前感谢您的建议 您可以

单击菜单链接时,此jQuery代码段显示或隐藏子菜单项:

jQuery(document).ready(function($) {

$('.main-navigation ul li a').click(function() {
   var li = $(this).closest('li');
   if(li.has('ul'))
        li.find('ul').toggle(100);
});

});
如何使用“动画”而不是“切换”实现类似效果


提前感谢您的建议

您可以使用几个预定义的切换,如

.slideToggle()
.fadeToggle()

也可以使用这种方式切换动画

$('.main-navigation ul li a').toggle(
function()
{
  $('#something').animate({
    height: "100"
  }, 500);
},
function()
{
  $('#something').animate({
    height: "200"
  }, 500);
});

因为不推荐使用带有2个处理程序的
.toggle()

你应该这样做

var toggle = false;

$('#foo').click(function() {
  if (toggle) {
    $("#bar").hide();
  } else {
    $("#bar").show();
  }
  toggle = !toggle;
});

这里有一个JSFIDLE中的工作示例,您可以使用几个预定义的切换,如

.slideToggle()
.fadeToggle()

也可以使用这种方式切换动画

$('.main-navigation ul li a').toggle(
function()
{
  $('#something').animate({
    height: "100"
  }, 500);
},
function()
{
  $('#something').animate({
    height: "200"
  }, 500);
});

因为不推荐使用带有2个处理程序的
.toggle()

你应该这样做

var toggle = false;

$('#foo').click(function() {
  if (toggle) {
    $("#bar").hide();
  } else {
    $("#bar").show();
  }
  toggle = !toggle;
});

这里有一个JSFIDLE中的工作示例

使用幻灯片*()转换可能是什么

   $('ul li a').click(function () {
    var li = $(this).closest('li');
    var ul;
    if (li.has('ul')) {
       ul = li.find('ul').slideToggle('slow');  // SlideToggle this to slideUp/down based on current state.
     }
        $('ul.subMenu:visible').not(ul).slideUp('slow');//slideUp all other menus

    });

使用幻灯片*()转换可能有什么问题

   $('ul li a').click(function () {
    var li = $(this).closest('li');
    var ul;
    if (li.has('ul')) {
       ul = li.find('ul').slideToggle('slow');  // SlideToggle this to slideUp/down based on current state.
     }
        $('ul.subMenu:visible').not(ul).slideUp('slow');//slideUp all other menus

    });

如果您的浏览器支持CSS3,为什么不让CSS通过切换特定类来制作动画呢

这真的很容易,而且

看看这个

我对您的代码所做的更改如下:

jQuery(document).ready(function($
    $('ul li').click(function() {
       var li = $(this).closest('li');
       if(li.has('ul'))
           li.find('ul').toggleClass('open'); // <- this line!
    });
});
而且它也很容易修改!为了好玩,假设您想缩放子菜单中的淡入淡出幻灯片?这太容易了,就连我的祖母都能做到(只需一点点搜索)

看看这个


现在,如果您想使用它,您可能希望在CSS3属性中包含所有必要的
-ms-
-o-
-moz-
-webkit-
前缀。

如果您的浏览器支持CSS3,为什么不让CSS通过切换特定类来执行动画呢

这真的很容易,而且

看看这个

我对您的代码所做的更改如下:

jQuery(document).ready(function($
    $('ul li').click(function() {
       var li = $(this).closest('li');
       if(li.has('ul'))
           li.find('ul').toggleClass('open'); // <- this line!
    });
});
而且它也很容易修改!为了好玩,假设您想缩放子菜单中的淡入淡出幻灯片?这太容易了,就连我的祖母都能做到(只需一点点搜索)

看看这个


现在,如果您想使用它,您可能希望在CSS3属性中包含所有必要的
-ms-
-o-
-moz-
-webkit-
前缀。

您想要哪种动画?您有几个
.slideToggle()
.fadeToggle()
您想要哪种动画?您有几个
.slideToggle()
.fadeToggle()
的重载
.toggle()
已被弃用;你不应该使用它。@Ian谢谢,我很快会用另一种方式更新我的答案。非常感谢,@Pedro!那么,像这样的事情$('.main navigation ul li a')。单击(function(){var li=$(this.nexist('li');if(li.has('ul'))li.find('ul')。slideToggle(150);})@Figaro是的,这会起作用,但请参阅我的更新答案,以获得正确的解决方案。
.toggle()
的重载已被弃用;你不应该使用它。@Ian谢谢,我很快会用另一种方式更新我的答案。非常感谢,@Pedro!那么,像这样的事情$('.main navigation ul li a')。单击(function(){var li=$(this.nexist('li');if(li.has('ul'))li.find('ul')。slideToggle(150);})@Figaro是的,这会起作用,但请查看我的更新答案,以获得正确的解决方案。您是否可以将您正在使用的菜单项和css、js放在小提琴中,而您可以复制这些问题…?小提琴被我的网络it人员阻止,很遗憾,@PSL。您是否可以将菜单项和css放在小提琴中,您在fiddle中使用的js可以复制问题…?fiddle被我的网络IT人员阻止,很不幸,@PSL。