この小さなドロップダウン矢印があります。<div>
クリックしたときに上に移動したい場合は動作します。しかし、不透明度を変更し、jQuery関数.stop()
を使用する別のアニメーションがあります。問題は、スライドアニメーション中にその上にカーソルを置くたびに、その要素がトラック内で停止し、アニメーションが終了しないということです。.stop()が他のアニメーションを停止しないようにします。
どうすれば解決できますか?
PS:誰かが2つの機能を切り替える方法に関する提案があれば、私はそれらを聞いてみたいと思います。ホバーの方がずっと便利です。そのための属性を追加することは、色あせています。
EDIT:使用可能な例:http://plnkr.co/edit/swuKbS3uM8G6stFnUT8U?p=preview
$(document).ready(function() {
console.log("ready for action!");
// Dropdown icon hover
$("#dropdownIcon").hover(function() {
$(this).stop(true).fadeTo(500, 1);
console.log("hovering");
}, function() {
$(this).stop(true).fadeTo(500, 0.3);
console.log("no longer hovering");
});
// Clicking on dropdown icon
$("#dropdownIcon").on("click", function() {
$(this).find("i").toggleClass("fa-chevron-down fa-chevron-up");
console.log("i clicked on the thing!");
if ($(this).attr("data-click-state") == 1) {
$(this).attr("data-click-state", 0);
$(this).animate({bottom:"0"},1000);
console.log("clicked once");
} else {
$(this).attr("data-click-state", 1);
$(this).animate({bottom:"50%"},1000);
console.log("clicked again");
}
});
});
HTML
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="CSS/normalize.css" />
<link type="text/css" rel="stylesheet" href="CSS/main.css" />
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<title>Rmonik</title>
</head>
<body>
<div id="wrapper">
<header>
<h1>
RMONIK
</h1>
<div id="dropdownIcon" data-click-state="0">
<i class="fa fa-chevron-down" aria-hidden="true"></i>
</div>
</header>
<nav></nav>
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="Javascript/main.js"></script>
</body>
</html>
あなたは 'html'、'質問でcss'を含めることができる要素に
mouseover
、mouseleave
イベントを再接続する.off()
、.animate()
のcomplete
機能を使用:// plnkr .coを実証する? – guest271314なぜそれが必要なのかよく分かりませんが、文字通り、id##dropdownIconが移動しているちょうど 'div'です。 – Rmo
_ "なぜそれが必要かわからない" _問題を再現する。 http://stackoverflow.com/help/mcve – guest271314