; /a>
2 つの div レイヤーの構造。最初の背景マスク レイヤーは必要な場合にのみ作成されます。各 div は CSS クラスを定義するため、外観を簡単にカスタマイズできます。
いくつかの基本関数の実装
フレームを移動
mousemove イベント内である限り、2 つのマウス位置の差と、移動されたフレームの元の上部と左を計算します。ダイアログ ボックスの新しい場所。 Mousemove イベントは、マウスがタイトル バーを押したときにのみトリガーする必要があるため、タイトル バーの Mousedown イベントがトリガーされたときにのみマウスムーブ イベントがバインドされ、マウスが放されたときにもマウスムーブ イベントはアンバインドされます。 Mousemove イベントのバインドを解除する
mousemove と Mouseup は、タイトル バーではなくドキュメントにバインドされます。その理由は、マウスの動きが速すぎると、タイトル バーの範囲外に移動してしまう場合があるためです。このとき、タイトルバーのイベントにバインドされている場合は無効となりますが、ドキュメントにバインドされている場合は無効となります。
var Mouse={x:0,y :0} ;
function moveDialog(event)
{
var e = window.event ||
var top = parseInt(dialog.css('top')) (e.clientY - マウス。y);
var left = parseInt(dialog.css('left')) (e.clientX - Mouse.x); ;
mouse.x = e.clientX;
mouse.y = e.clientY>}; >var e = window.event ||
mouse.x = e.clientX;
$(document).bind('mousemove',moveDialog);
});
$(document).mouseup(function(event){
$(document).unbind('mousemove', moveDialog);
配置
IE の clientWidth や offsetWidth などの一連の属性は他のブラウザとは少し異なるため、これらの属性は使用せず、width() 関数を直接使用します。 jQuery の下:
コードをコピー
コードは次のとおりです。var top = parseInt(dialog.css('top')) - $(document).scrollTop(); var left = parseInt(dialog.css('left')) - $(document)。 scrollLeft();
$(window).scroll(function(){
dialog.css({'top':$(document).scrollTop() top,'left':$(document).scrollLeft () left});
});
z-index
複数のダイアログ ボックスを共存させるために、静的な zIndex 変数を使用してそれぞれ新しいダイアログ ボックスを作成しますtime 毎回、自動インクリメント操作が実装され、最後に作成されたダイアログ ボックスが常に前面に表示されるように、新しく作成されたダイアログ ボックスの z インデックスに新しい値が割り当てられます。
外部インターフェース
プラグインは次の方法で呼び出されます:
コードをコピー
コード
show(): Display the dialog box
hide(): Hide the dialog box, but does not delete the content in the dialog box.
close(): Close the dialog box and completely delete its content.
setContent(content): Change the content in the dialog box.
Constructor parameters
The constructor has two parameters. content and options. content represents the content of the dialog box; options represents the various configuration options of the dialog box.
content can be a string representing the displayed content. Or an Object type. If it is an Object type, it needs to contain the following two attributes: type and value. Type represents the data type, and value is the content corresponding to type. type accepts the following types:
id: displays the content of a certain ID, but does not include the content of the ID itself. value corresponds to the ID value of a certain HTML element.
img: Display an image. value corresponds to the uri of the image.
url: Display the content of a certain URL through ajax, so it must be under the same domain name. value is the corresponding URL address.
iframe: Display the content specified by a URL into an iframe. It removes some restrictions on AJAX calls (with the same domain name, the returned HTML code cannot contain headers, etc.). value is the corresponding URL.
options are specific settings for Dialog behavior and appearance:
Custom CSS
The plug-in provides a CSS class name for each part of the dialog box, making it easy to customize the CSS:
类名 |
描述 |
.dialog-overlay |
模态对话框时,的背景遮盖层。 |
.dialog |
对话框的CSS。 |
.dialog .bar |
标题栏的CSS。包含了标题和关闭按钮。 |
.dialog .bar .title |
标题栏的标题部分。 |
.dialog .bar .close |
标题栏的关闭按钮部分。 |
.dialog .content |
内容部分。 |
You can directly modify these CSS classes to make global modifications, or you can modify a certain dialog box by adding the id and class name.
/* Only modify the dialog box with the id #dialog. */
#dialog1 .bar
{
text-transform:lowercase;
}
// Specify the id of the dialog box through the id attribute.
new Dialog('text',{id:'dialog1'});
Online demo code
Code package download