ホバーしたら隣接する要素をアコーディオンする方法を紹介します。
ホバーしたら隣接する要素をアコーディオンする
子要素ではなく隣接にしなければいけないシチュエーション
・ホバーしたときのコンテンツをウィンドウサイズまで広げたい
.animate()を使用
・css()だとゆっくり変化が適応できなかった
・セレクタの付与も同じくゆっくり変化が適応できなかった
—
// グロナビのアコーディン $(function(){ $("div#gn li").hover(function(){ $(this).next(".contents").animate({height: "500px"}, 500); }, function() { $(this).next(".contents").animate({height: "0px"}, 500); }); });
—
.contents:hover { height: 500px !important; }
jQueryで高さを固定長からautoアニメーションで変更させる方法
https://qiita.com/Kohei_Kishimoto0214/items/237d17373074c6b74223
↑↑↑↑↑
アニメーションが連続されてしまうためボツ
ホバー・マウスオーバーでメニューを開く方法【JavaScript】【jQuery】
https://hsmt-web.com/blog/js-mouseover-menu/
の3つ目、jQuery (slideDown / slideUp)でコントロールを実装
// グロナビアコーディオン
$(function(){
$(".has-sub").mouseover(function(){
$(this).children(".sub").stop().slideDown();
});
$(".has-sub").mouseout(function(){
$(".sub").stop().slideUp();
});
});
コンテンツ幅いっぱいまで広げる方法は
liについているpodision relativeを外すことで対応しました。