Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 FontAwesome5(带JS的SVG)和Jquery将图标旋转(设置动画)180度_Javascript_Jquery_Css_Svg_Font Awesome - Fatal编程技术网

Javascript FontAwesome5(带JS的SVG)和Jquery将图标旋转(设置动画)180度

Javascript FontAwesome5(带JS的SVG)和Jquery将图标旋转(设置动画)180度,javascript,jquery,css,svg,font-awesome,Javascript,Jquery,Css,Svg,Font Awesome,在这里寻找一些帮助,使用FA5 SVG w/JS和Jquery来设置图标的动画,这样在单击元素时图标将旋转180度 我的HTML如下所示: <div class="card-block"> <a id="student-change" data-toggle="collapse" href="#classBreakdownPanel" role="button" aria-expanded="false" aria-controls="c

在这里寻找一些帮助,使用FA5 SVG w/JS和Jquery来设置图标的动画,这样在单击元素时图标将旋转180度

我的HTML如下所示:

        <div class="card-block">
            <a id="student-change" data-toggle="collapse" href="#classBreakdownPanel" role="button" aria-expanded="false" aria-controls="classBreakdownPanel">
                <div class="row">
                    <div class="col">
                        <span class="card-text text-primary">View details</p>
                    </div>
                    <div class="col">
                        <i id="blueCaret" class="fas fa-2x blue-caret fa-caret-circle-up float-right"></i>
                    </div>
                </div>
            </a>
        </div>
#blueCaret{
    transition-duration: 0.8s;
    transition-property: transform;
}
.rotated{
    -moz-transform:rotate(180deg);
    -webkit-transform:rotate(180deg);
    transform:rotate(180deg);
}
还有一些非常简单的jquery:

    $('#student-change').click(function(){
        $('#blueCaret').toggleClass("rotated");
        console.log('it should turn');
    });
这是因为图标在加载时从指向上变为向下,当它下面的div在单击时展开,然后当用户再次单击它时再次指向上

我希望它能很好地旋转到合适的位置

现在,它只是从上到下瞬间切换,但我想通过旋转它来设置过渡动画,使它看起来很漂亮和流畅

我确信我遗漏了一些简单的东西,但我似乎找不到如何做到这一点。

设置超时=>{ document.querySelector'i' .classList。添加“旋转” }, 1000 .轮换{ 变换:旋转180度; 转变:转变1s; }
我认为这可能是因为您试图将类应用于元素,而我认为jQuery无法做到这一点。请参阅以下答案:。解决此问题的一种方法是将元素包装在包含元素中,并对其进行转换。考虑这个示例,使用您在浏览器中呈现的代码,您可能需要在全屏上运行代码段:

$'student-change'。单击函数E{ $'blueCaret'.addClassrotated; console.log'it should turn'; 返回false; }; 蓝色插入符号{ 显示:内联块; 转换:转换200ms轻松; } .轮换{ -莫兹变换:旋转180度; -webkit变换:旋转180度; 变换:旋转180度; }
这是一种享受。我真的很惊讶,我没有偶然发现您链接的关于无法将类添加到SVG的问题。哎呀!
    $('#student-change').click(function(){
        $('#blueCaret').toggleClass("rotated");
        console.log('it should turn');
    });