Jquery 替换“;切换";加上;动画化;
单击菜单链接时,此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(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。