jquery - 替代菜单按钮动画中已弃用的 jQuery .toggle() 函数
问题描述
我几年前建立的网站上的导航菜单按钮动画最近由于 .toggle() 函数被弃用而损坏,我无法弄清楚用什么替换代码,任何帮助将不胜感激!
这是该网站的链接(打开和关闭菜单的动画在右上角): http ://blackcurrent.co/#home
当您单击菜单按钮时,该符号应该在菜单打开时进行动画处理,然后当您单击相同的按钮再次关闭它时,动画应该再次触发但相反。
这是jQuery:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#bespokeButton').toggle(
function(){
jQuery("#segment1").removeClass('seg1ani2');
jQuery("#segment1").toggleClass('seg1ani');
jQuery("#segment2Container").removeClass('seg2Contani2');
jQuery("#segment2Container").toggleClass('seg2Contani');
jQuery("#segment3").removeClass('seg3ani2');
jQuery("#segment3").toggleClass('seg3ani');
},
function(){
jQuery("#segment1").removeClass('seg1ani');
jQuery("#segment1").toggleClass('seg1ani2');
jQuery("#segment2Container").removeClass('seg2Contani');
jQuery("#segment2Container").toggleClass('seg2Contani2');
jQuery("#segment3").removeClass('seg3ani');
jQuery("#segment3").toggleClass('seg3ani2');
});
});
</script>
我已将 .toggle() 函数更改为 .click() ,正如您现在在网站上看到的那样,菜单按钮会按照打开菜单的方式进行动画处理,但是当您再次单击关闭菜单时,它不会反向触发动画。
有什么想法可以让它再次这样做吗?
非常感谢,
ñ
解决方案
一种简单的方法是切换按钮上的类并检查类是否存在。
function openMenu(){
jQuery("#segment1").removeClass('seg1ani2');
jQuery("#segment1").toggleClass('seg1ani');
jQuery("#segment2Container").removeClass('seg2Contani2');
jQuery("#segment2Container").toggleClass('seg2Contani');
jQuery("#segment3").removeClass('seg3ani2');
jQuery("#segment3").toggleClass('seg3ani');
}
function closeMenu(){
jQuery("#segment1").removeClass('seg1ani');
jQuery("#segment1").toggleClass('seg1ani2');
jQuery("#segment2Container").removeClass('seg2Contani');
jQuery("#segment2Container").toggleClass('seg2Contani2');
jQuery("#segment3").removeClass('seg3ani');
jQuery("#segment3").toggleClass('seg3ani2');
}
jQuery('#bespokeButton').click(function(e){
if($(this).hasClass('open')){
closeMenu()
}else{
openMenu()
}
$(this).toggleClass('open')
});
推荐阅读
- algorithm - 查找单链表的第 k 个最后一个元素:答案解释
- javascript - 与 JavaScript 中的变量赋值一样,一次性为一个对象分配多个值
- webgl - 动态收缩缓冲区
- html - 如果 Markdown 是 HTML 的超集,那为什么它不能做 HTML 能做的所有事情呢?
- tensorflow - 将预训练模型生成的预测输出解码为人类可读的标签
- docker - 在 Jenkins docker 容器中使用 fabric8 docker-maven-plugin
- matlab - MATLAB - 如果在类构造函数中创建子图,则轴句柄将被删除
- python - 如何使用 python smtplib 在邮件中发送附加的图像文件和嵌入到 html 电子邮件正文的相同图像?
- python - 如何从具有多行的 2 个不同数据集创建可视化?
- node.js - 带有 Twit 的 Node.js - AND 运算符问题