Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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在单击时更改类,保留css动画_Javascript_Jquery_Html_Css_Animation - Fatal编程技术网

javascript在单击时更改类,保留css动画

javascript在单击时更改类,保留css动画,javascript,jquery,html,css,animation,Javascript,Jquery,Html,Css,Animation,所以我需要一些帮助。我有一个需要javascript/css组合的问题 我有菜单设置。正如你所看到的,箭头在悬停状态下动画,这不是我在本例中想要的 我希望箭头/css在单击时设置动画。所以我不确定如何做到这一点,如果我应该在js中使用.hasClass并在单击时切换它。另外,我如何定义打开哪个菜单项(由类定义,而不是在js中定义) 单击后,我希望箭头在设置动画后保持不变(即“打开”菜单的箭头向上,而“关闭”菜单的箭头向下) 我是否需要对js进行大量更改,或者只是进行少量编辑 $(documen

所以我需要一些帮助。我有一个需要javascript/css组合的问题

我有菜单设置。正如你所看到的,箭头在悬停状态下动画,这不是我在本例中想要的

我希望箭头/css在单击时设置动画。所以我不确定如何做到这一点,如果我应该在js中使用.hasClass并在单击时切换它。另外,我如何定义打开哪个菜单项(由类定义,而不是在js中定义)

单击后,我希望箭头在设置动画后保持不变(即“打开”菜单的箭头向上,而“关闭”菜单的箭头向下)

我是否需要对js进行大量更改,或者只是进行少量编辑

$(document).ready(function() {
    // Collapse everything but the first menu:
    $("#VerColMenu > li > a").not(":first").find("+ ul").slideUp(1);
    // Expand or collapse:
    $("#VerColMenu > li > a").click(function() {
        $(this).find("+ ul").slideToggle("fast");
    });
});

任何帮助都很好。

以下是问题第二部分的解决方案:

您的HTML已更新以更改:

<i class="fa fa-angle-down vnavright"></i>
CSS规则已修改为使用
#VerColMenu li a[class^=“vnavright”]


当事情按照您所希望的方式运行时,我发现动画令人困惑。

在原始HTML中,您可能还希望将第一个箭头的类更改为fa angle up:

    <ul id="VerColMenu">
        <li><a class="top-vnav">General <i class="fa fa-angle-up vnavright"></i></a>
...
  • 一般的 ...
请开始使用JSFIDLE上的“整理”按钮。它使您的代码变得漂亮。已修复,抱歉。我会记住未来的小提琴,没关系。顺便说一句,我已经为您提供了代码,使箭头在设置动画后保持不变。是否还要保留当前的悬停动画?谢谢。还有可能在其中包含css动画吗?或者这是更难实现的事情吗?完全可能。我们只需要使用一个不同的选择器,比如用css动画为angle up和angle down创建一个单独的类,请参见更新的答案。你应该点击答案旁边的复选标记来接受。我已经接受了,谢谢你的帮助。这一切似乎都是我希望它是除了动画。是否可以触发动画onClick(即仅当您单击菜单项时)?谢谢,我也这么认为。
$(this).find("[class^='vnavright']").toggleClass('fa-angle-down fa-angle-up');
    <ul id="VerColMenu">
        <li><a class="top-vnav">General <i class="fa fa-angle-up vnavright"></i></a>
...