jQuery 彈出層插件(推薦)
來(lái)源:易賢網(wǎng) 閱讀:1260 次 日期:2016-06-23 17:08:56
溫馨提示:易賢網(wǎng)小編為您整理了“jQuery 彈出層插件(推薦)”,方便廣大網(wǎng)友查閱!

下面小編就為大家?guī)?lái)一篇深入理解jQuery中的事件冒泡。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。

最近在研究彈出層插件時(shí)發(fā)現(xiàn)網(wǎng)上很多插件功能很強(qiáng)大,同時(shí)插件也很龐大。在這里個(gè)人寫了一個(gè)比較秀珍的彈出層插件。

jquery.popdialog.js

$(function () {

$.fn.PopDialog = function (options) {

var defaults = {

Event: "click", //觸發(fā)響應(yīng)事件

title: "title", //彈出層的標(biāo)題

type: "text", //彈出層類型(text、容器ID、URL、Iframe)

content: "content", //彈出層的內(nèi)容(text文本、容器ID名稱、URL地址、Iframe的地址)

width: 500, //彈出層的寬度

height: 400, //彈出層的高度

scrollTop: 200, //層滑動(dòng)的高度也就是彈出層時(shí)離頂部滑動(dòng)的距離

isAuto: false, //是否自動(dòng)彈出

time: 2000, //設(shè)置自動(dòng)彈出層時(shí)間,前提是isAuto=true

isClose: false, //是否自動(dòng)關(guān)閉 

timeOut: 2000 //設(shè)置自動(dòng)關(guān)閉時(shí)間,前提是isClose=true

};

var options = $.extend(defaults, options);

$("body").prepend("<div id='floatBoxBg'></div><div id='floatBox' class='floatBox'><div class='title'><h4></h4><span id='closeDialog'>X</span></div><div class='content'></div></div>");

var $this = $(this); //當(dāng)然響應(yīng)事件對(duì)象

var $blank = $("#floatBoxBg"); //遮罩層對(duì)象

var $title = $("#floatBox .title h4"); //彈出層標(biāo)題對(duì)象

var $content = $("#floatBox .content"); //彈出層內(nèi)容對(duì)象

var $dialog = $("#floatBox"); //彈出層對(duì)象

var $close = $("#closeDialog"); //關(guān)閉層按鈕對(duì)象

var stc, st;

if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style) {//判斷IE6

$blank.css({ height: $(document).height(), width: $(document).width() });

}

$close.live("click", function () {

$blank.animate({ opacity: "0" }, "normal", function () { $(this).hide(); });

$dialog.animate({ top: ($(document).scrollTop() - parseInt(options.height)) + "px" }, "normal", function () { $(this).hide(); });

if (st) {

clearTimeout(st); //清除定時(shí)器

}

if (stc) {

clearTimeout(stc); //清除定時(shí)器

}

});

$content.css("height", parseInt(options.height) - 70);

//文本框綁定事件

$this.live(options.Event, function (e) {

$title.html(options.title);

switch (options.type) {

case "url": //當(dāng)類型是地址的時(shí)候 

$content.ajaxStart(function () {

$(this).html("loading...");

});

$.get(options.content, function (html) {

$content.html(html);

});

break;

case "text": //當(dāng)類型是文本的時(shí)候

$content.html(options.content);

break;

case "id": //當(dāng)類型是容器ID的時(shí)候

$content.html($("#" + options.content + "").html());

break;

case "iframe": //當(dāng)類型是Iframe的時(shí)候

$content.html("<iframe src=\"" + options.content + "\" width=\"100%\" height=\"" + (parseInt(options.height) - 70) + "px" + "\" scrolling=\"auto\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\"></iframe>");

break;

default: //默認(rèn)情況下的時(shí)候

$content.html(options.content);

break;

}

$blank.show();

$blank.animate({ opacity: "0.5" }, "normal");

$dialog.css({ display: "block", left: (($(document).width()) / 2 - (parseInt(options.width) / 2)) + "px", top: ($(document).scrollTop() - parseInt(options.height)) + "px", width: options.width, height: options.height });

$dialog.animate({ top: options.scrollTop + "px" }, "normal");

if (options.isClose) {

stc = setTimeout(function () {

$close.trigger("click");

clearTimeout(stc);

}, options.timeOut);

}

});

if (options.isAuto) {

st = setTimeout(function () {

$this.trigger(options.Event);

clearTimeout(st);

}, options.time);

}

}

});

配套的css:

*

{

padding: 0;

margin: 0;

}

#floatBoxBg

{

display: none;

width: 100%;

height: 100%;

background: #000;

position: fixed !important; /*ie7 ff*/

position: absolute;

top: 0;

left: 0;

filter: alpha(opacity=0);

opacity: 0;

}

.floatBox

{

border: #9CC95F 5px solid;

position: fixed !important; /*ie7 ff*/

position: absolute;

top: 50px;

left: 40%;

background: #fff;

display: none;

}

.floatBox .title

{

height: 23px;

padding: 7px 10px 0;

color: #fff;

background-attachment: scroll;

background: #9CC95F;

background-repeat: repeat-x;

background-position: 0px 0px;

}

.floatBox .title h4

{

float: left;

padding: 0;

margin: 0;

font-size: 14px;

line-height: 16px;

}

.floatBox .title span

{

float: right;

cursor: pointer;

}

.floatBox .content

{

padding: 20px 15px;

background: #fff;

overflow-x: hidden;

overflow-y: auto;

}

#closeDialog

{

font-size: 20px;

font-weight: bold;

color: #000;

margin-top: -5px;

}

#closeDialog:hover

{

font-size: 20px;

font-weight: bold;

color: #fff;

margin-top: -5px;

}

最終的html示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title></title>

<script type="text/javascript" src="../js/jquery-1.7.min.js"></script>

<script type="text/javascript" src="jquery.popdialog.js"></script>

<link type="text/css" rel="stylesheet" href="popdialog.css" />

</head>

<body>

<div id="test">彈出層插件測(cè)試</div>

<div id="detail" style="display: none;">

歡迎各位網(wǎng)友使用彈出層插件demo

</div>

<script type="text/javascript">

$(function () {

$("#test").PopDialog({

Event: "click", //觸發(fā)響應(yīng)事件

title: "彈出層插件", //彈出層的標(biāo)題

type: "id", //彈出層類型(text、容器ID、URL、Iframe)

content: "detail", //彈出層的內(nèi)容獲取(text文本、容器ID名稱、URL地址、Iframe的地址)

width: 500, //彈出層的寬度

height: 300, //彈出層的高度 

scrollTop: 200, //層滑動(dòng)的高度也就是彈出層時(shí)離頂部滑動(dòng)的距離

isAuto: true, //是否自動(dòng)彈出

time: 2000, //設(shè)置彈出層時(shí)間,前提是isAuto=true

isClose: false, //是否自動(dòng)關(guān)閉 

timeOut: 5000 //設(shè)置自動(dòng)關(guān)閉時(shí)間,前提是isClose=true 

});

});

</script>

</body>

</html>

以上所述是小編給大家介紹的jQuery 彈出層插件(推薦)的相關(guān)知識(shí),希望對(duì)大家有所幫助

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:jQuery 彈出層插件(推薦)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)