我希望有人可以帮助我。
我想使用http://callmenick.com/post/animating-css-only-hamburger-menu-icons
中的一个汉堡图标转换在.click
事件中触发了图标转换的jquery。我希望它在悬停或mouseover
时触发,然后在鼠标悬停时播放动画并反转。
这是需要更改的脚本。
// Animated Hamburger Icon
(function() {
"use strict";
var toggles = document.querySelectorAll(".c-hamburger");
for (var i = toggles.length - 1; i >= 0; i--) {
var toggle = toggles[i];
toggleHandler(toggle);
};
function toggleHandler(toggle) {
toggle.addEventListener( "click", function(e) {
e.preventDefault();
(this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");
});
}
})();
答案 0 :(得分:3)
因为您正在使用jQuery,所以可以使用hover()
方法使用toggleClass()
事件:
function toggleHandler(toggle) {
$( toggle ).hover(function(){
$(this).toggleClass("is-active");
});
}
希望这有帮助。
答案 1 :(得分:1)
我认为你需要做这样的事情
(function() {
"use strict";
var toggles = document.querySelectorAll(".c-hamburger");
for (var i = toggles.length - 1; i >= 0; i--) {
var toggle = toggles[i];
toggleHandler(toggle);
};
function toggleHandler(toggle) {
toggle.addEventListener( "click", function(e) {
e.preventDefault();
(this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");
});
toggle.addEventListener( "mouseover", function(e) {
e.preventDefault();
this.classList.add("is-active");
})
toggle.addEventListener( "mouseout", function(e) {
e.preventDefault();
this.classList.remove("is-active");
})
}
})();
答案 2 :(得分:0)
https://developer.mozilla.org/en-US/docs/Web/Events/mouseover
在提供的示例中,请查看第24行。
您只需将'click'替换为'mouseover',它就会按照您想要的方式运行。