共有サイドバーを実装するためのネイティブJS

共有サイドバーを実装するためのネイティブJS

この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。

以下は、コピーして貼り付ける際の便宜を図るためのコード実装です。

<!DOCTYPE html>
<html>
 
<head lang="ja">
    <メタ文字セット="UTF-8">
    <title>共有して効果を得る</title>
    <スタイル>
        #共有 {
            位置: 固定;
            幅: 100ピクセル;
            高さ: 200px;
            背景色: 水色;
            左: -100px;
            上: 100px;
        }
 
        #共有スパン{
            幅: 20px;
            高さ: 60px;
            行の高さ: 20px;
            テキスト配置: 中央;
            左: 100px;
            上: 70px;
            位置: 絶対;
            背景色: 黄色;
        }
    </スタイル>
 
</head>
 
<本文>
 
    <div id="共有">
        <span>共有する</span>
    </div>
 
    <スクリプト>
        // 要素を取得します var share = document.getElementById("share");
        // 共有するイベントを設定する
        share.onmouseover = 関数(){
            アニメーション化(これを「左」、0);
        };
        share.onmouseout = 関数(){
            アニメーション化(これを「左」に-100)。
        };
 
        // モーションをアニメーション化する関数 function animate(tag, attr, target) {
            間隔をクリアします(tag.timer);
            tag.timer = setInterval(関数() {
 
                // 属性の現在の状態を取得します // 単位があるため、丸める必要があります // parseInt("hehe") => NaN NaN || 0
                // NaN への自動変換の問題に対処するために、短絡操作を使用してプログラムの堅牢性を確保します。var leader = parseInt(getStyle(tag, attr)) || 0;
 
                // イージング式の一部はステップの値を変更することです。var step = (target - leader) / 10;
 
                // offsetLeft は値を取得するときに丸められるため、step が比較的小さい場合は動きに問題が発生します。// ステップの正負の数に応じて丸め方法を変更します。step = step > 0 ? Math.ceil(step) : Math.floor(step);
 
                // イージング式 Leader = Leader + Step;
 
                // 特定の属性に設定します tag.style[attr] = leader + "px";
 
                // 指定された位置に到達したかどうかを確認します if (leader == target) {
                    間隔をクリアします(tag.timer);
                }
            }, 17);
        }
 
        // ユニット関数 getStyle(tag, attr) でタグのスタイル属性値を取得するために使用します。
            // サポートされているものを確認します // box.currentStyle、存在しない場合は値は未定義です
            // ブラウザがサポートしていない場合は getComputedStyle を使用します。これは変数が宣言されていないことと同等であり、エラーを報告します。if (tag.currentStyle) {
                // つまり、サポートされます return tag.currentStyle[attr];
            } それ以外 {
                // 標準メソッド return getComputedStyle(tag, null)[attr];
            }
        }
 
    </スクリプト>
</本文>
 
</html>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScriptでシームレススクロールを実装し、サイドバーのサンプルコードに共有する
  • JS モーション フレームワーク共有サイドバー アニメーションの例
  • スクロールバーに合わせてスライドするブログサイドバーモジュールの固定効果を実装する方法(js+jqueryなど)
  • 動的なサイドバーコードを実装するためのJavaScript
  • シンプルな非表示サイドバー機能を実現する JavaScript の例
  • 動的サイドバーの例の JavaScript 実装の詳細な説明
  • js を使用してレスポンシブ サイドバーを作成する
  • JS はサイドバーのマウスオーバーポップアップボックス + バッファ効果を実装します
  • slideout.js をベースにモバイル サイドバーのスライド効果を実装する
  • フルスクリーンサイドバーを実現するためのjs+css

<<:  MySQLがデータの削除を推奨しない理由

>>:  HTML テーブル タグ チュートリアル (31): セルの幅と高さの属性 WIDTH、HEIGHT

推薦する

CSS+SVGでBステーションの課金効果を実現するサンプルコード

困難SVG グラフィックの 2 つのマスクの作成まず、コード左側のピンク色のボックスの内容ですこれに...

MySQL インデックスがソートに与える影響の分析例

この記事では、例を使用して、MySQL インデックスがソートに与える影響を説明します。ご参考までに、...

MySQLは変数を使用してさまざまなソートを実装します

コアコード -- 以下では、MySQLでのソート列の実装を示します -- テストデータ CREATE...

一般的なブラウザのユーザーエージェントの概要

1. 基礎知識: HTTP ヘッダー ユーザーエージェントユーザー エージェントは、ユーザー エージ...

Windows Server 2016 リモート デスクトップ サービスを展開するためのクイック スタート ガイド

現在、2016サーバーは、win2008や2012よりも優れたマルチサイトhttpsサービスをサポー...

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

JavaScript でグレイウルフのポットビーティングゲームを実装

1. プロジェクト文書 2. ページレイアウトにHTMLとCSSを使用するHTML部分 <di...

Websocket+Vuexはリアルタイムチャットソフトウェアを実装します

目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...

mysql5.7 ユーザー権限の作成、ユーザーの削除、権限の取り消し

1. ユーザーを作成します。注文: 'password' によって識別される ...

nacos が mysql に接続できない場合の解決策

理由nacos の pom が依存する mysql バージョンが、mysql バージョンと一致してい...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

html-cssタグのスタイル設定が機能しない2つの理由

1 セミコロン「;」のない CSS スタイル2 タグが閉じられておらず、「>」がありません...

MySQLインデックス最適化分析に関する簡単な説明

記述した SQL クエリが遅いのはなぜですか?作成したインデックスが頻繁に失敗するのはなぜですか?こ...

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...