ホームページ ウェブフロントエンド jsチュートリアル Jquery はポップアップ レイヤー plug-in_jquery を実装します

Jquery はポップアップ レイヤー plug-in_jquery を実装します

May 16, 2016 pm 04:17 PM
jquery ポップアップレイヤー プラグイン

同じページ上でログインや一部の操作を行うなど、ポップアップ レイヤーのアプリケーションはまだたくさんあります。そのため、私は常にポップアップを作成したいと考えていました。レイヤープラグイン。さっそく始めましょう!

1: マスクレイヤー

レイヤーをポップアップするには、まずマスク レイヤーを使用して下のページをブロックする必要があります。このマスク レイヤーは全画面表示であり、ページをスクロールする必要があるため、位置を固定します。これには透明効果もあります。私の定義 マスクレイヤーCSSの名前はmask

です

コードをコピーします コードは次のとおりです:

.mask
{
位置: 固定;
幅: 100%;
高さ: 100%;
背景色: 白;
オーバーフロー: スクロール;
フィルター: alpha(opacity=50);
-moz-不透明度: 0.5;
不透明度: 0.5;
z インデックス: 20;
オーバーフロー: 自動;
上: 0px;
右: 0px;
}

2: プラグインの主要パラメータ

タグ: なぜタグが必要なのでしょうか?タグを使用して、ポップアップする必要がある非表示の要素を指定できます。タグをセレクター「#*」として指定すると、指定した要素をポップアップできます。ここではデフォルトをこれに設定します。

mainContent: このパラメータは必須ですか?主にサーバーコントロールに設定すると、フォームが送信できなくなります。しかし、送信をクリックするとページが更新され、ポップアップレイヤーが消えるので、まだ役に立たないと思います...

コードをコピーします コードは次のとおりです:

$.fn.xsPop = 関数 (オプション) {
vardefaults = {//デフォルト値
title: "ポップアップ ウィンドウ", //ウィンドウ タイトル
幅: 500、
高さ: 400、
タグ: this, // ロードする必要がある要素をポップアップします
close: "閉じる",
mainContent: "body"//フォームを送信するためのコンテナですが、送信するとページが更新されます...
};
var options = $.extend(defaults, options) //渡されたパラメータでオーバーライドします
This.each(function() {
xsMain(options.title, options.width, options.heigth, options.tag, options.close, options.mainContent); // プラグインのメインの入り口
});
};

3: xsMain 関数を使用して要素を追加し、イベントをバインドします

ここには高さと幅を制御するプロセスがあります。設定が画面の高さと幅を超える場合、設定が画面に合わせて調整され、ポップアップ レイヤーが大きすぎて操作できなくなるのを防ぎます。もう一つは普通にhtmlを追加する方法ですが、私は文字列追加を使います

コードをコピー コードは次のとおりです:

//受信データに従って、マスクレイヤーを追加し、プロンプトボックスをポップアップ表示します
関数 xsMain(タイトル、幅、高さ、タグ、閉じる、mainContent) {
var divmask = "
";
$(mainContent).append(divmask);
var xsPop1 = " ";
var allHtml = xsPop1 xsPop2 xsPop3 xsPop5;
$(mainContent).append(allHtml);
$(tag).show();
$(tag).appendTo("#xsPopMain");
//ブラウザの高さと幅を取得し、その後の判断を行う(高さが超過、ドラッグ枠の制限)
clientHeight = window.screen.height;
clientWidth = window.screen.width;
If (高さ > clientHeight) {
高さ = clientHeight - 100;
}
If (幅 > clientWidth) {
width = clientWidth - 100;
}
$("#xsPop").css({
"高さ": 高さ "px",
"width": 幅 "px",
"margin-top": "-" (高さ / 2) "px",
"margin-left": "-" (幅 / 2) "px"
});
$("#xsPopMain").css("height", height - $("#xsPopHead").height());
xsdrag("#xsPopHead", "#xsPop") //バインドドラッグアクション
$("#xsColse").bind("click", function () { ClosePop(tag, mainContent); }); //バインドクローズアクション
}

4: アクションを閉じる

ここでは、最初にコンテナにタグを付ける必要があります。そうしないと、後で削除するときにタグも一緒に削除され、2 回目にポップアップしたときにタグが見つからなくなります。

コードをコピーします コードは次のとおりです:
//ポップアップレイヤーを閉じます
関数 ClosePop(tag, mainContent) {
$(mainContent).append(tag); //保存しない場合は、手順 4 の $("#xsPop").remove() でタグがクリアされます
$(tag).hide();
$(".mask").remove();
$("#xsPop").remove();
}

5: ドラッグ効果

方法 1: 要素を使用するイベントであることに初めて気づきましたが、要素が失われやすく、効果が理想的ではありません

コードをコピー コードは次のとおりです:

//ポップアップレイヤーをドラッグ&ドロップします(失敗した方法、オブジェクトの損失が発生します)
//コントロールはドラッグ要素、タグはアクション要素、通常、コントロールはタグ内にあります
// 関数ドラッグ(コントロール, タグ) {
// // var isMove = false;
// var abs_x = 0, abs_y = 0;
// // $(control).mousedown(
// // 関数 (イベント) {
// // var top = $(tag).offset().top;
// // var left = $(tag).offset().left;
// abs_x =event.pageX - left;
// // abs_y =event.pageY - top;
// // isMove = true;
}).mouseleave(function () {
// // isMove = false;
// // });
// // $(control).mouseup(function () {
// // isMove = false;
// // });
// // $(document).mousemove(function (event) {
// // if (isMove) {
// // $(タグ).css({
// // '左':event.pageX - abs_x $(tag).width() / 2 - 1,
// // 'top':event.pageY - abs_y $(tag).height() / 2 - 1
// // // // }
// // false を返します;
// // });
// }

方法 2 (私が現在使用している方法) は、ドキュメントの上下を使用しますが、まだいくつかの問題があり、移動が速すぎる問題と、座標がわずかにジャンプする問題があります

また、ポップアップ レイヤーを画面の上部に直接ドラッグして放すと、ドラッグして元に戻すことも、クリックして閉じることもできなくなります。百度のホームページのポップアップレイヤーを見てみましたが、こちらも同様の現象が発生していますが、ウィンドウを拡大・縮小するとポップアップレイヤーが中央に戻ってしまいます。私もこれを試してみましたが、onresizeをバインドすると、明らかにonresizeではないイベントが表示されたため、マウスの位置を0未満にすることはできないと判断しました。

コードをコピー コードは次のとおりです:

//ポップアップレイヤーをドラッグアンドドロップします
//コントロールはドラッグ要素、タグはアクション要素、通常、コントロールはタグ内にあります
関数 xsdrag(コントロール, タグ) {
$(control).mousedown(function (e)//emouse イベント
{
var offset = $(this).offset() //ページ上の DIV の位置
var x = e.pageX - offset.left; // マウスポインタと DIV 要素の左端の間の距離を取得します
var y = e.pageY - offset.top; //マウスポインタとDIV要素の上端との距離を取得します
$(document).bind("mousemove", function (ev)//マウス移動イベントをバインドします。カーソルは DIV 要素の外側にも影響を与える必要があるため、DIV 要素のイベントの代わりにドキュメント イベントを使用する必要があります。
{
If (EV.Pagey & Lt; = 0) {Return;} // フレームを閉じてドラッグできないようにします
$(tag).css({
'left': ev.pageX - x $(tag).width() / 2, // これをレイアウトに追加する必要があります
「トップ」: ev.pageY - y $(tag).height() / 2
});
});
});
$(document).mouseup(function () {
$(this).unbind("mousemove");
});
}

6: スタイルシート

ポップアップ レイヤーのレイアウトでは上と左のマージンと上に負の値が使用されるため、js に高さと幅の半分を追加します

コードをコピーします コードは次のとおりです:

.mask
{
位置: 固定;
幅: 100%;
高さ: 100%;
背景色: 白;
オーバーフロー: スクロール;
フィルター: alpha(opacity=50);
-moz-不透明度: 0.5;
不透明度: 0.5;
z インデックス: 20;
オーバーフロー: 自動;
上: 0px;
右: 0px;
}
.PopUp
{
パディング: 0px;
位置: 絶対;
z インデックス: 21 !重要;
背景色: 白;
ボーダースタイル: ソリッド ソリッド ソリッド ソリッド;
枠線の幅: 1px;
枠線の色: #C0C0C0;
左: 50%;
トップ: 50%;
}
.ポップヘッド
{
背景色: #F0F0F0;
ボーダーボトムスタイル: ソリッド;
枠の下の幅: 1px;
境界線の下の色: #C0C0C0;
高さ: 30px;
カーソル: 移動;
クリップ:rect(0px, auto, auto, 0px);
}
.PopHead b
{
float: 左;
表示: ブロック;
色: #C0C0C0;
フォントファミリー: システム;
フォントサイズ: 中;
行の高さ: 30px;
テキストインデント: 2em;
}
.PopHead スパン
{
float: 右;
表示: ブロック;
テキストの配置: 右;
行の高さ: 30px;
カーソル: ポインタ;
テキストインデント: 5px;
色: #FF0000;
フォントサイズ: 12pt;
}
.PopMain
{
パディング: 10px;
オーバーフロー: 自動;
}

7: ページの使用

テストサーバーコントロールはフォームを送信できます

コードをコピーします コードは次のとおりです:

$(document).ready(function () {
$("#btnPop").click(function () {
var オプション = {
タイトル: 「マイポップ」、
幅: 500、
高さ: 400、
閉じる: "閉じる",
mainContent: "フォーム"
}
$("#pop1").xsPop(options);
});
});

はい、以上です。本当はサイズを変えるためにボーダープルを作りたかったのですが、時間がかかりそうなのでやめました。実際、正直に言うと、オーバーフローを設定するとスクロールバーが表示されるため、ドラッグすることはあまり意味がないと思いますし、境界線のコントロールのサイズもあまり意味がありません。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Chrome プラグイン拡張機能のインストール ディレクトリとは何ですか? Chrome プラグイン拡張機能のインストール ディレクトリとは何ですか? Mar 08, 2024 am 08:55 AM

Chrome プラグイン拡張機能のインストール ディレクトリとは何ですか?通常の状況では、Chrome プラグイン拡張機能のデフォルトのインストール ディレクトリは次のとおりです。 1. WindowsXP での Chrome プラグインのデフォルトのインストール ディレクトリの場所: C:\DocumentsandSettings\username\LocalSettings\ApplicationData\Google\Chrome\UserData\ Default\Extensions2. Windows7 の chrome プラグインのデフォルトのインストール ディレクトリの場所: C:\Users\username\AppData\Local\Google\Chrome\User

Edge ブラウザがこのプラグインをサポートしない理由に対する 3 つの解決策を共有します Edge ブラウザがこのプラグインをサポートしない理由に対する 3 つの解決策を共有します Mar 13, 2024 pm 04:34 PM

ユーザーが Edge ブラウザを使用する場合、より多くのニーズを満たすためにいくつかのプラグインを追加する場合があります。しかし、プラグインを追加すると、このプラグインはサポートされていないと表示されます。この問題を解決するにはどうすればよいですか?今日は編集者が 3 つの解決策を紹介しますので、ぜひ試してみてください。方法 1: 別のブラウザを使用してみてください。方法 2: ブラウザ上の Flash Player が古いか見つからないため、プラグインがサポートされていない可能性があり、公式 Web サイトから最新バージョンをダウンロードできます。方法3:「Ctrl+Shift+Delete」キーを同時に押します。 「データを消去」をクリックしてブラウザを再度開きます。

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? Feb 28, 2024 pm 03:12 PM

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常​​、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

jQueryで要素の高さ属性を削除するにはどうすればよいですか? jQueryで要素の高さ属性を削除するにはどうすればよいですか? Feb 28, 2024 am 08:39 AM

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

Google Chrome でアニメーション プラグインを実行できる仕組み Google Chrome でアニメーション プラグインを実行できる仕組み Mar 28, 2024 am 08:01 AM

Google Chrome ではどのようにしてアニメーション プラグインを実行できるようになりますか? Google Chrome は非常に強力です。多くの友人はビデオ アニメーションを見るためにこのブラウザを使用するのが好きです。ただし、さまざまなアニメーション ビデオを見たい場合は、ブラウザにアニメーション プラグインをインストールする必要があります。多くの友人は Google Chrome を使用しています。アニメーションプラグインを入れても動画が見れないのですが、どうすればいいでしょうか?次に、アニメーション プラグインを Google Chrome で実行できるようにするための具体的な手順をエディターに示します。興味のある友人は、見に来てください。 Google Chrome でアニメーション プラグインの実行を許可する具体的な手順: 1. まず、コンピュータで Google Chrome を実行し、ホームページの右上隅にあるメイン メニュー ボタンをクリックします (図を参照)。 2. メイン メニューを開いた後、下の「設定」オプションを選択します (図を参照)。 3. 設定で

Google Chromeプラグインのブロックを解除する方法 Google Chromeプラグインのブロックを解除する方法 Apr 01, 2024 pm 01:41 PM

Google Chrome プラグインのブロックを解除するにはどうすればよいですか? Google Chrome を使用する際、豊富な機能やサービスを提供し、作業効率を向上させるために、さまざまな便利なプラグインをインストールするユーザーは多いですが、一部のユーザーは、Google Chrome にプラグインをインストールすると、プラグインが機能しなくなるという意見を持っています。常に表示されます。がブロックされています。この状況が発生した後、どうすればプラグインのブロックを解除できますか?次に、エディターが Google Chrome のプラグインのブロックを解除する手順を説明します。必要な友達は、見に来てください。 Google Chrome でプラグインのブロックを解除する方法 ステップ 1. ブロックされたプロンプトが表示されたら、「コントロール バー」をクリックし、「ActiveX コントロールのインストール」を選択します。 2. 次に、ブラウザの「ツール」メニューを開き、「インターネット オプション」をクリックします。 3.

See all articles