CSS スタイル html,本文{ 幅: 100%; 高さ: 100%; マージン: 0;パディング: 0; } /*ナビゲーションアイコン*/ .NMH-g-navicon{ 位置: 固定; 上位: 40% 右: 020px; 幅: 100ピクセル; 高さ: 100px; } .NMH-g-navicon.Jnmh-onleft{ 右: 自動; 左: 020px; } /*ナビゲーションアイコンロゴボタン*/ .NMH-g-navicon .Jnmh-btnlogo{ 位置: 絶対; 表示: ブロック; 幅: 100ピクセル; 高さ: 100px; 上位: 50%; 右: 0; 上マージン: -50px; 境界線: 0; 背景: url(img/icon_128.png) 繰り返しなし 中央 中央; 背景サイズ: 95% 95%; 境界線: 1px実線 rgba(0, 0, 0, 0.1); ボックスシャドウ: rgba(0, 0, 0, 0.12) 0px 6px 10px 0px; アウトライン: なし; 境界線の半径: 50%; zインデックス: 1; } .NMH-g-navicon .Jnmh-btnlogohover{ 位置: 絶対; 表示: ブロック; 幅: 100ピクセル; 高さ: 100px; 上位: 50%; 右: 0; マージン: 0;パディング: 0; 上マージン: -50px; 境界線: 0; オーバーフロー: 非表示; /*背景色: 赤;*/ } /*ナビゲーションアイコンのロゴボタンにマウスオーバー*/ .NMH-g-navicon.Jnmh-open .Jnmh-btnlogohover{ 上マージン: -150px; 幅: 200ピクセル; 高さ: 300px; 境界線の半径: 150px 0 0 150px; } .NMH-g-navicon.Jnmh-onleft .Jnmh-btnlogohover{ 左: 0; 右: 自動; 境界線の半径: 0 150px 150px 0; } /*ナビゲーションアイコンメニューサブコンテナ*/ .NMH-g-navicon .Jnmh-m-submenu{ 位置: 絶対; 背景色: 透明; リストスタイル: なし; 上: -020px; 下: -020px; 左: -020px; 右: -020px; マージン: 0; パディング: 0; } .NMH-g-navicon .Jnmh-m-submenu .Jnmh-subli{ 位置: 絶対; 幅: 100%;高さ: 100%; 変換: 回転(0度); -webkit-transform: 回転(0度); 遷移: すべて 0.8 秒のイーズイン アウト。 } .Jnmh-m-サブメニュー .Jnmh-subdl{ 位置: 絶対; 左: 50%; 下部: 100%; 幅: 0; 高さ: 0; 行の高さ: 1px; 左マージン: 0; 背景: #fff; 境界線の半径: 50%; テキスト配置: 中央; フォントサイズ: 1px; オーバーフロー: 非表示; カーソル: ポインタ; ボックスシャドウ: なし; 遷移: すべて 0.8 秒のイーズイン/アウト、カラー 0.1 秒、背景 0.1 秒。 } /*ナビゲーションアイコン - メニューを展開するとき*/ .NMH-g-navicon.Jnmh-open .Jnmh-m-submenu .Jnmh-subdl{ 幅: 80ピクセル; 高さ: 80px; 行の高さ: 80px; 左マージン: -40px; ボックスの影: 0 3px 3px rgba(0, 0, 0, 0.1); フォントサイズ: 14px; } /*ナビゲーションアイコン - 3 レベル メニュー コンテナー*/ .NMH-g-navicon.Jnmh-open .Jnmh-m-submenu .Jnmh-subdd{ 位置: 絶対; 行の高さ: 通常; } HTMLコード <div id="nmh-navicon" class="NMH-g-plugin NMH-g-navicon"> <button class="Jnmh-btnlogo"></button> <ins class="Jnmh-btnlogohover"></ins> <ul class="Jnmh-m-submenu"> <li class="Jnmh-subli"> <dl class="Jnmh-subdl"> <dt class="NMH-subdt">電子商取引プラットフォーム</dt> <dd class="NMH-subdd"></dd> </dl> </li> <li class="Jnmh-subli"> <dl class="Jnmh-subdl"> <dt class="NMH-subdt">製品選択プラットフォーム</dt> <dd class="NMH-subdd"></dd> </dl> </li> <li class="Jnmh-subli"> <dl class="Jnmh-subdl"> <dt class="NMH-subdt">メンバーアップグレード</dt> <dd class="NMH-subdd"></dd> </dl> </li> <li class="Jnmh-subli"> <dl class="Jnmh-subdl"> <dt class="NMH-subdt">製品オペレーション</dt> <dd class="NMH-subdd"></dd> </dl> </li> <li class="Jnmh-subli"> <dl class="Jnmh-subdl"> <dt class="NMH-subdt">パーソナルセンター</dt> <dd class="NMH-subdd"></dd> </dl> </li> </ul> </div> JavaScript コード <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript"> // マウスがロゴに入るイベントをリッスンします $(document).on('mouseenter','.Jnmh-btnlogo',function(){ $('#nmh-navicon').addClass('Jnmh-open'); GtoggleNavlogo(); }); // ナビゲーション ボール削除イベントのマウス削除をリッスンします (フローティング ボールを拡大および縮小するときに #nmh-navicon を直接リッスンしないのはなぜですか? 代わりに、エッジ トリガーを減らすためにロゴをもう一度リッスンします) $(document).on('mouseleave','#nmh-navicon',function(){ $('#nmh-navicon').removeClass('Jnmh-open'); GtoggleNavlogo(); }); var GtoggleNavlogo = function(){ var li = $('#nmh-navicon').find('.Jnmh-subli'); lilen = li.length; var avgDeg = 180/(lilen-1); // 平均角度 var initDeg = 0; // 開始方向角度 if($('#nmh-navicon').hasClass('Jnmh-onleft')){ // フローティングボールを左にドラッグすると、セカンダリメニューが右側に表示されます li.css({transform: 'rotate(0deg)'}); 初期度 = 180; }それ以外{ // デフォルトでは、フローティング ボールは右側にあり、セカンダリ メニューは左側にあります li.css({transform: 'rotate(-360deg)'}); } for(var i=0,j=lilen-1; i<lilen; i++,j--) { var d = initDeg - (i*avgDeg); var z = initDeg?j:i; // コンソールログ(d); $('#nmh-navicon').hasClass('Jnmh-open') ? GrotateNavlogo(li[z],d) : GrotateNavlogo(li[z],0); } }; var GrotateNavlogo = function(dom,deg){ $({a:0}).animate({a:deg}, { ステップ: 関数(now,fx) { $(dom).css({ transform: 'rotate('+now+'deg)' }); $(dom).children().css({ transform: 'rotate('+(-now)+'deg)' }); }, 期間: 0 }); } //マウスでロゴをドラッグして移動します $(document).on('mousedown','.Jnmh-btnlogo',function(e_down){ var wrap = $('#nmh-navicon'); wrap.removeClass('Jnmh-open'); $('.Jnmh-m-サブメニュー').hide(); GtoggleNavlogo(); var positionDiv = wrap.offset(); var distanceX = e_down.pageX - positionDiv.left; var distanceY = e_down.pageY - positionDiv.top + $(document).scrollTop(); $(ドキュメント).mousemove(diy_move); 関数diy_move(e_move){ var x = e_move.pageX - 距離X; var y = e_move.pageY - 距離Y; (x < 0) の場合 { 0 の場合 } そうでない場合、(x > $(document).width() - wrap.outerWidth(true)) { x = $(document).width() - wrap.outerWidth(true); } (y < 0)の場合{ y = 0; } そうでない場合、(y > $(window).height() - wrap.outerHeight(true)) { y = $(window).height() - wrap.outerHeight(true); } $(ラップ).css({ '左': x + 'px', '上': y + 'px' }); } $(ドキュメント).mouseup(関数() { var x = $(wrap).offset().left; var rm = '',ad = 'Jnmh-open'; if(x > $(document).width()/2){ x = $(document).width() - wrap.outerWidth(true) -10; rm = 'Jnmh-onleft'; }それ以外{ x = 10; ad += 'Jnmh-onleft'; } $(wrap).css({left: x + 'px'}).addClass(ad).removeClass(rm); $('.Jnmh-m-サブメニュー').show(); GtoggleNavlogo(); $(document).unbind('mousemove',diy_move); }); }); </スクリプト> html スライディング イミテーション フローティング ボール メニュー効果の実装に関するこの記事はこれで終わりです。html スライディング イミテーション フローティング ボール メニューの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 |
<<: Sublime / vscode による HTML コード生成の迅速な実装
>>: 友達を追加せずにオンラインチャットするために一時的な QQ ダイアログボックスをポップアップ表示する方法
この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...
序文この記事には1. データベースのいくつかの主要な制約2. テーブル間の関係制約:主キー制約: 機...
序文:私はずっと、SQL 文がどのように、どのような順序で実行されるのかを知りたいと思っていました。...
目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...
これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...
少し前に、「ORACLE でコミットされていないトランザクションの SQL ステートメントを見つける...
序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...
インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...
目次1. はじめに2. ルール検証の入力モード2.1 サンプルコード2.2、フォーム項目2.3. 小...
この記事では、商品詳細ページの虫眼鏡を実装するためのVueの具体的なコードを参考までに共有します。具...
(I) mysql5.7のインストール: ❀詳細:無料のグリーンバージョン5.7のインストール方法は...
CSSスタイルの分類1. 内部スタイル ---- インラインスタイルスタイルタグの使用 <ス...
DockerイメージからDockerfileを取得する docker 履歴 --format {{....
MySql インデックスインデックスの利点1. 一意のインデックスまたは主キー インデックスを作成す...
スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...