Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产逼逼视频,久久黄色影片,午夜精品久久久久久久第一页

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          經(jīng)常下載電影的同學(xué),我找到一個提升觀影體驗的辦法!

          多好玩好用的軟件,歡迎點擊右上角關(guān)注我~

          用過更好的,就再也回不去了。

          -- by Tony

          差友們對于上面這句話有什么感想嗎?托尼的感想就兩個字:費錢。

          比如要體驗 4K 的分辨率,或者 144hz 的刷新率,就必須得換屏( 兩者同時體驗這種事情就。。不要想了吧。。。)

          而換完屏后發(fā)現(xiàn)自己顯卡推不動。。。就。。。換顯卡,換完顯卡再回頭看自己原來 1080P 60hz 的屏,感覺眼睛都要瞎了。

          嗯,怎么看東西這么糊,這塊屏該換了。。。

          那么有沒有不怎么費錢。。。最。。。最好不花錢的辦法,可以讓暫時沒啥錢的年輕人提升一下視頻觀感體驗的?

          答案當然是肯定的。今天托尼要給差友們介紹一個補幀軟件。

          先甩個視頻給你們感受一下

          傳送門:https://v.qq.com/iframe/preview.html?vid=h1346p34ewn&width=500&height=375&auto=0

          因為上傳的壓縮,效果沒滿血,后面告訴大家感受滿血效果的辦法。

          什么是流暢?

          為什么我明明已經(jīng)特地下了個藍光資源看起來還是不太得勁兒?是不是該換塊屏了?但為什么我游戲過場的 CG 動畫看起來又總是比電影要流暢?

          決定流暢度好壞的因素主要有兩個:幀率,以及動態(tài)模糊。

          差友們還記得小時候看過的卓別林的默片嗎?

          早期的默片其實是一張一張畫片按照固定的時間間隔在你面前呈現(xiàn)的,再經(jīng)過人腦神奇的處理給人一種畫面在動的感覺。

          上面這個動圖是由每秒 10 張靜態(tài)的圖片組成的,這個每秒 10 張指的就是幀率,也叫 fps。

          fps = frame per second ( 幀每秒 )

          而現(xiàn)在的電影多數(shù)是 24 fps,游戲的 CG 動畫一般是 60 fps。所以單從幀率上來說,CG 動畫是要優(yōu)于電影的。

          但是有一點又很神奇的就是,很多游戲玩起來明明連平均幀率都超過30幀,但是觀感體驗又沒有 24 幀的電影來的舒爽順暢,這又是為什么呢?

          這基本上可以說是實時渲染和動態(tài)模糊的鍋。

          實時渲染就是即興作畫。電腦的硬件水平?jīng)Q定了它可以在相同的時間內(nèi),畫多少張畫給你講同一個故事。

          CG 動畫就不同了,它是預(yù)先通過專業(yè)的計算設(shè)備渲染好以后導(dǎo)出的一個視頻文件,換句話說我畫畫速度不夠快,大不了我花一天的時間畫一張畫,慢工出細活,最后把畫好的畫,氣定神閑地遞給你,你看著感覺就一定很舒服。

          而且即興作畫發(fā)揮不穩(wěn)定,可能我之前給你畫得挺快,一秒給你畫 30 張,但是后來我手酸了,畫得慢了,一秒只能給你遞 10 張畫。這樣一會兒快一會兒慢,你看著就很不舒服。

          而動態(tài)模糊是啥呢?是畫的意境,寫意畫!

          游戲里的畫,是靜物素描,每一張都很清晰。而電影里的畫是寫意畫,有些地方朦朧,有些地方清晰。

          畫面里的物體是靜是動,是快是慢其實都看得出來

          (《 死侍 2 》 打斗畫面 )

          同一畫面里面運動速度慢的東西看上去就比較清楚,比如死侍的臉,運動速度快的則是一個模糊的運動軌跡,比如死侍的手和手里的刀。這樣的 “ 意境 ” 是方便我們大腦,腦補出一個完整流暢的打斗動作的。

          現(xiàn)在的游戲為了游玩體驗更好,也會加入一些 “ 意境 ” ,也就是運動模糊。

          補幀?

          補幀,就類似在你的連環(huán)畫里面加入更多的畫片。

          坊間流傳著各種各樣關(guān)于補幀的傳聞,甚至是傳說。比如我們上面提到的腦補,這還真不是開玩笑的。

          本質(zhì)上所有的電影其實都是一系列靜止畫片按照一定的時距依次出現(xiàn)在人的眼前,而人腦接受到這些信息之后會產(chǎn)生畫面在運動的幻象,這個現(xiàn)象就是似動現(xiàn)象

          想象一圈小燈泡圍成一個圓圈,燈泡按照順時針逐個亮起滅掉,是不是會給人一種光球在轉(zhuǎn)圈圈運動的感覺?但事實上是所有的燈泡都只發(fā)生了亮滅的變化,并沒有發(fā)生位移。

          但為什么我們會覺得光球在轉(zhuǎn)圈圈呢,這就是腦補。既然叫腦補,自然是費腦子的。咱們假想一個極端的場景,托尼同樣用兩秒鐘給你描述一個 “ 故事 ”。

          首先,盯著這張圖片看 2 秒。

          然后再看這張動圖。

          ( 這是一張兩秒的動圖,一共 30 張 畫。)

          哪個故事理解起來更容易?

          還有另一種補法叫 “ 眨眼補幀 ” 了,顧名思義,通過眨眼來達到補幀的效果。

          這是一種佛系玄學(xué)的補幀辦法,講究順勢而為,敵不動我動。比如玩游戲的時候突然卡起來了,看視頻的時候幀率不夠,玩家就可以通過眨眼來讓畫面變得流暢。一些修為更高的玩家還可以通過畫面幀率具體狀況來調(diào)整自己眨眼的頻率以及每次閉眼的時長來達到流暢的觀看體驗。

          但是 “ 眨眼補幀 ” 有一個致命的缺點就是眼睛容易累,而且有時候眼睛進東西了不得不眨眼會打破原來補好的穩(wěn)定幀率。

          是不是該翻譯翻譯,什么才叫流暢了?

          用 AMD 顯卡的差友們可能有聽過 AMD Fluid Motion 這項技術(shù),這是用 A 卡的一大好處,它可以為視頻補幀,把 24 幀或者 30 幀的視頻補齊到 60 幀。不僅僅是視頻文件在本地播放的時候可以補,看在線視頻的時候也可以補。

          ( AMD 官網(wǎng)的插幀技術(shù)描述 )

          這里附上一個用 AMD Fluid Motion 技術(shù)補到 60 幀的 “ 憤怒的元首 ” 供大家欣賞一下。

          傳送門:https://v.qq.com/iframe/preview.html?vid=n13468fxrk0&width=500&height=375&auto=0

          ( 原 up 主視頻效果更明顯,視頻地址在文末參考資料 )

          感興趣的差友可以去研究研究,托尼就不詳細講了畢竟。。。托尼沒有 A 卡。

          但是托尼找到了這個叫做 SVP 的軟件。

          這個軟件全稱叫做 Smooth Video Project,托尼的叫法叫 “ 絲絲順滑觀影計劃 ”。目前在 Windows, Linux 和 Mac 平臺都有。

          Windows 有一個免費的試用版,Linux完全免費,而 Windows 下的 SVP 4 Pro 和 Mac 下的 SVP 4 Mac 都需要購買。

          官網(wǎng)不同版本軟件的特性對比

          托尼試探性地點進 Mac 的購買鏈接里瞄了一眼。

          稍微有點小貴。。。但是為什么這里還有個中文的 SVP 4 購買鏈接。

          抱著試一試的心態(tài)我點進去發(fā)現(xiàn)了另一個專門給國人的購買入口。

          托尼之前在 Windows 上試用了一下試用版,嘿!還真 TM 管用!

          出于國際人道主義精神,這波信仰必須充值!

          在電子郵件欄輸入郵箱,用支付寶付完錢后,我的郵箱收到了一封通知郵件,里面附上了下載鏈接,用戶名和注冊碼。

          值得一提的是 Windows 和 Mac 都是支持無條件退款的,Windows 15 天,Mac 30 天。

          在 Mac 下打開 dmg 文件就可以看到軟件,一個安裝說明,還有一個終端自運行文件。

          跟著說明走把軟件拖到 Application 文件夾里以后再運行一下那個自運行文件就基本大功告成了。

          軟件界面長這樣

          后面還有一系列設(shè)定要調(diào),托尼這里就掠過了,官網(wǎng)和附件里的說明都非常詳細,還是留一些小小的未知供差友探索。

          雖然無論是 Windows 還是 Mac 上的準備工作都比較復(fù)雜,但是復(fù)雜的好處就是它不僅支持在線看視頻,還支持較多的第三方播放器。

          VLC 這個播放器無論是 Mac 還是 Windows 上都有,而且 SVP 也都支持。Mac 上的 SVP 4 就是把 VLC 里的去隔行濾鏡替換成了它的 “ 補幀濾鏡 ”

          托尼拖了個頭號玩家進去以后。。。就

          炸裂了了了!

          托尼把開啟補幀和關(guān)閉補幀的播放畫面錄屏了下來,你們對比一下看看吧。

          注意 Parzival 的頭發(fā)

          傳送門:https://v.qq.com/iframe/preview.html?vid=h1346p34ewn&width=500&height=375&auto=0

          Bilibili 支持上傳 60 幀的視頻,比這里效果更明顯( B 站有條件的把分辨率調(diào)到 1080p60 最佳 )。

          其實 Windows 上的免費版基本已經(jīng)夠用了,但是免費版沒法設(shè)定目標補齊幀率,所以如果接的是一塊 144hz 的顯示屏,補幀效果會很不理想。

          感興趣的差友可以下個免費版嘗鮮一下,稍微要費點功夫。但是當你隨便拖個電影進去的那一刻,你會明白,一切都是值得的。至于沖不充值信仰就很隨意了。

          反正托尼用這個軟件看了三部電影,現(xiàn)在關(guān)了軟件看啥都像看 PPT 。

          參考資料:

          1. AMD 官網(wǎng)

          https://www.amd.com/zh-hans/technologies/perfect-picture

          2. SVP 官網(wǎng)

          https://www.svp-team.cn.com/wiki/Main_Page

          3. 憤怒的元首視頻--Bilibili up主 open4all

          https://www.bilibili.com/video/av8778335?from=search&seid=131898783601263129

          4. 頭號玩家補幀對比視頻--Bilibili up主 盒子里面有什么

          https://www.bilibili.com/video/av28914137

          5. 死侍 2

          6. 頭號玩家

          7. 卓別林-摩登時代

          “ 感覺是時候重新溫習(xí)一下

          硬盤里的收藏了 ”

          眾號【傳智播客博學(xué)谷】回復(fù)關(guān)鍵詞:前端 PS Java(100G) Python(80G) 大數(shù)據(jù) 區(qū)塊鏈 測試 PPT JS(40g+300教程) HTML 簡歷 領(lǐng)取相關(guān)學(xué)習(xí)資料!

          一、HTML

          1、<image>標簽上title屬性與alt屬性的區(qū)別是什么?

          alt屬性是為了給那些不能看到你文檔中圖像的瀏覽者提供文字說明的。且長度必須少于100個英文字符或者用戶必須保證替換文字盡可能的短。

          這包括那些使用本來就不支持圖像顯示或者圖像顯示被關(guān)閉的瀏覽器的用戶,視覺障礙的用戶和使用屏幕閱讀器的用戶等。

          title屬性為設(shè)置該屬性的元素提供建議性的信息。使用title屬性提供非本質(zhì)的額外信息。參考《alt和title屬性的區(qū)別及應(yīng)用》

          2、分別寫出以下幾個HTML標簽:文字加粗、下標、居中、字體

          加粗:<b>、<strong>

          下標:<sub>

          居中:<center>

          字體:<font>、<basefont>、參考《HTML標簽列表》

          3、請寫出至少5個html5新增的標簽,并說明其語義和應(yīng)用場景

          section:定義文檔中的一個章節(jié)

          nav:定義只包含導(dǎo)航鏈接的章節(jié)

          header:定義頁面或章節(jié)的頭部。它經(jīng)常包含 logo、頁面標題和導(dǎo)航性的目錄。

          footer:定義頁面或章節(jié)的尾部。它經(jīng)常包含版權(quán)信息、法律信息鏈接和反饋建議用的地址。

          aside:定義和頁面內(nèi)容關(guān)聯(lián)度較低的內(nèi)容——如果被刪除,剩下的內(nèi)容仍然很合理。

          參考《HTML5 標簽列表》

          4、請說說你對標簽語義化的理解?

          a. 去掉或者丟失樣式的時候能夠讓頁面呈現(xiàn)出清晰的結(jié)構(gòu)

          b. 有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關(guān)鍵字的權(quán)重;

          c. 方便其他設(shè)備解析(如屏幕閱讀器、盲人閱讀器、移動設(shè)備)以意義的方式來渲染網(wǎng)頁;

          d. 便于團隊開發(fā)和維護,語義化更具可讀性,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。

          5、Doctype作用? 嚴格模式與混雜模式如何區(qū)分?它們有何意義?

          聲明位于文檔中的最前面,處于 標簽之前。告知瀏覽器以何種模式來渲染文檔。

          嚴格模式的排版和 JS 運作模式是,以該瀏覽器支持的最高標準運行。

          在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。

          DOCTYPE不存在或格式不正確會導(dǎo)致文檔以混雜模式呈現(xiàn)。

          6、你知道多少種Doctype文檔類型?

          標簽可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基于框架的 HTML 文檔。

          HTML 4.01 規(guī)定了三種文檔類型:Strict、Transitional 以及 Frameset。

          XHTML 1.0 規(guī)定了三種 XML 文檔類型:Strict、Transitional 以及 Frameset。

          Standards (標準)模式(也就是嚴格呈現(xiàn)模式)用于呈現(xiàn)遵循最新標準的網(wǎng)頁,

          Quirks(包容)模式(也就是松散呈現(xiàn)模式或者兼容模式)用于呈現(xiàn)為傳統(tǒng)瀏覽器而設(shè)計的網(wǎng)頁。

          7、HTML與XHTML——二者有什么區(qū)別

          a. XHTML 元素必須被正確地嵌套。

          b. XHTML 元素必須被關(guān)閉。

          c. 標簽名必須用小寫字母。

          d. XHTML 文檔必須擁有根元素。

          參考《XHTML 與 HTML 之間的差異》

          8、html5有哪些新特性、移除了那些元素?

          a. HTML5 現(xiàn)在已經(jīng)不是 SGML 的子集,主要是關(guān)于圖像,位置,存儲,多任務(wù)等功能的增加。

          b. 拖拽釋放(Drag and drop) API

          c. 語義化更好的內(nèi)容標簽(header,nav,footer,aside,article,section)

          d. 音頻、視頻API(audio,video)

          e. 畫布(Canvas) API

          f. 地理(Geolocation) API

          g. 本地離線存儲 localStorage 長期存儲數(shù)據(jù),瀏覽器關(guān)閉后數(shù)據(jù)不丟失

          h. sessionStorage 的數(shù)據(jù)在頁面會話結(jié)束時會被清除

          i. 表單控件,calendar、date、time、email、url、search

          j. 新的技術(shù)webworker, websocket等

          移除的元素:

          a. 純表現(xiàn)的元素:basefont,big,center, s,strike,tt,u;

          b. 對可用性產(chǎn)生負面影響的元素:frame,frameset,noframes;

          9、iframe的優(yōu)缺點?

          優(yōu)點:

          a. 解決加載緩慢的第三方內(nèi)容如圖標和廣告等的加載問題

          b. iframe無刷新文件上傳

          c. iframe跨域通信

          缺點:

          a. iframe會阻塞主頁面的Onload事件

          b. 無法被一些搜索引擎索引到

          c. 頁面會增加服務(wù)器的http請求

          d. 會產(chǎn)生很多頁面,不容易管理。

          參考《iframe的一些記錄》

          10、Quirks模式是什么?它和Standards模式有什么區(qū)別?

          在寫程序時我們也會經(jīng)常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。IE6以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。

          區(qū)別:總體會有布局、樣式解析和腳本執(zhí)行三個方面的區(qū)別。

          a. 盒模型:在W3C標準中,如果設(shè)置一個元素的寬度和高度,指的是元素內(nèi)容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。

          b. 設(shè)置行內(nèi)元素的高寬:在Standards模式下,給等行內(nèi)元素設(shè)置wdith和height都不會生效,而在quirks模式下,則會生效。

          c. 設(shè)置百分比的高度:在standards模式下,一個元素的高度是由其包含的內(nèi)容來決定的,如果父元素沒有設(shè)置百分比的高度,子元素設(shè)置一個百分比的高度是無效的用

          d. 設(shè)置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。

          11、請闡述table的缺點

          a. 太深的嵌套,比如table>tr>td>h3,會導(dǎo)致搜索引擎讀取困難,而且,最直接的損失就是大大增加了冗余代碼量。

          b. 靈活性差,比如要將tr設(shè)置border等屬性,是不行的,得通過td

          c. 代碼臃腫,當在table中套用table的時候,閱讀代碼會顯得異常混亂

          d. 混亂的colspan與rowspan,用來布局時,頻繁使用他們會造成整個文檔順序混亂。

          e. 不夠語義

          參考《為什么說table表格布局不好?》

          12、簡述一下src與href的區(qū)別

          src用于替換當前元素;href用于在當前文檔和引用資源之間確立聯(lián)系。

          src是source的縮寫,指向外部資源的位置,指向的內(nèi)容將會嵌入到文檔中當前標簽所在位置

          href是Hypertext Reference的縮寫,指向網(wǎng)絡(luò)資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接

          公眾號【傳智播客博學(xué)谷】回復(fù)關(guān)鍵詞:前端 PS Java Python 大數(shù)據(jù) 區(qū)塊鏈 測試 PPT JS HTML 簡歷 領(lǐng)取相關(guān)學(xué)習(xí)資料!

          是多年以前用傳統(tǒng)JQuery(easyUi)做項目時遇到的問題,今天把解決思路發(fā)布出來,也許能幫助到還在使用老架構(gòu)的同學(xué)。

          在開發(fā)類ERP的后臺管理系統(tǒng)時,經(jīng)常會看到這樣的布局結(jié)構(gòu)


          每打開一個菜單都是單獨打開一個Tab頁,easyUi打開Tab頁有兩種方式:

          • 動態(tài)增加iframe
          • 在同一個Dom樹中增加div 的方式

          同一Dom樹中存在命名污染的問題,包括樣式也會互相影響,新增加頁面里的樣式很可能影響原有頁面的布局

          因此我們采用iframe的方式實現(xiàn):

          function addTab(subtitle,url,icon,closable){
          	if(!$('#tabs').tabs('exists',subtitle)){
          		$('#tabs').tabs('add',{
          			title:subtitle,
          			content:createFrame(url),
          			closable:(closable==null?true:closable),
          			icon:icon,
          			fit:true
          		});
          	}else{
          		$.messager.confirm('提示',eship.messages.updateTab,function(r){  
          			if (r){    
          				$('#tabs').tabs('select',subtitle);
          				var currTab = $('#tabs').tabs('getSelected');
          				$('#tabs').tabs('update',{
          					tab:currTab,
          					options:{content:createFrame(url)}
          				});
          			}
          		});
          	}
          	tabClose();
          }
          
          function createFrame(url){
          	var s = '<iframe scrolling="auto" frameborder="0"  src="'+url+'" style="width:100%;height:99%;"></iframe>';
          	return s;
          }

          我們在使用時iframe Tab頁時,頁面中經(jīng)常會有打開對話框的需求。

          因為我們采用了iframe的方式,其實打開對話框是在子頁面的iframe的dom中打開的,因此會被主頁面遮擋,如圖所示:


          對話框移動過程中會被Tab標簽遮擋,并且無法繼續(xù)向上移動,并且不同iframe傳遞參數(shù)也比較麻煩,不是很方便,因此決定進行封裝,基本原理如下:

          封裝模態(tài)對話框插件

          1. 判斷是否在最頂層dom中執(zhí)行,如果不在獲取到頂層dom對象
          2. 在最頂層iframe中自動增加一個div,并通過這個div打開模態(tài)對話框
          3. 用堆棧記錄打開對話框的相關(guān)屬性options
          4. 關(guān)閉時,依次調(diào)用堆棧中的對話框,并關(guān)閉

          優(yōu)點:

          1. 增加getDialogOption方法,可方便獲取當前對話框的option對象,可以方便的通過該對象進行窗口之間的值傳遞。
          2. 在關(guān)閉時,增加回調(diào)方法,可以在關(guān)閉時方便的調(diào)用父窗體的回調(diào)方法。
          /**
           * jQuery dialog
           * 
           * @author rogerkuo
           * 
           * easy ui 對話框擴展,自動創(chuàng)建DIV,并將DIV放置在最頂層DOM中,避免對話框被iframe覆蓋的情況
           */
          (function($) {
          	$.joyplus = function(){};
          	$.joyplus.messager = function(){};
          	
          	//私有方法,用來負責創(chuàng)建對話框
          	function _joy_show(options) {
          		var defaults = {
          			width : 800,
          			height : 500,
          			title : 'My Dialog',
          			modal : true,
          			onLoad : function(){
          				var topDiaOptions = $.joyplus.getDialogOption();
          				if( topDiaOptions.dialogId != undefined){//如果需要處理對話框連續(xù)彈出問題時,對焦點進行處理
          					var topBody = _joy_get_top_body();
          					var ele = $(topBody).find("#" + $.joyplus.getModelDialogId());
          					var inputs = $(ele).find("input");
          					if( inputs.length > 0 ){
          						inputs[0].focus();
          					}
          				}
          			}
          			//dialogId : ""用來判斷是否同一窗體,避免同一個業(yè)務(wù)多次彈出一個對話框,造成對話框堆疊,如果沒有,不作處理
          		};
          
          		var isString = (typeof options == "string");
          		if (isString) {
          			options = {};
          		}
          		
          		var d = {};
          		
          		$.extend(d , options);
          		
          		var topDiaOptions = $.joyplus.getDialogOption();
          		
          		if( topDiaOptions != undefined && topDiaOptions.dialogId != undefined &&  topDiaOptions.dialogId == d.dialogId ){
          
          			return;
          		}
          		
          		var isDataFunction = false;
          		//新增dialog傳值基礎(chǔ)功能,可調(diào)用父窗體的方法,獲取附加數(shù)據(jù)
          		if( jQuery.type(d.extdata) == "function"){
          			isDataFunction = true;
          			d.extdata = d.extdata.call(this);
          		}
          		//新增dialog傳值grid功能
          		if( jQuery.type(d.grid) == "function"){
          			isDataFunction = true;
          			d.grid = d.grid.call(this);
          		}
          		if(!isDataFunction){
          			d = $.extend(d , options);
          		}
          		
          
          		_joy_get_options_cache().push(d);
          
          		var opt = $.extend(defaults, options);
          
          		opt.onClose = $.joyplus.closeModelDialog;
          
          		var id = _joy_create_div();
          		var top = _joy_get_top_body();
          
          		var element = $(top).find("#" + id);
          		$(element).dialog(opt);
          		
          	};
          
          	//獲取最上層的dialog對象
          	function _joy_get_top_dialog() {
          		var stack = _joy_get_dialog_stack();
          		return stack.pop();
          	};
          
          	//獲取對話框堆棧,因為用戶可以在對話框上繼續(xù)點開對話框,因次要記錄對話框堆棧
          	//先進后出
          	function _joy_get_dialog_stack() {
          		var top = _joy_get_cahce();
          		return top;
          	};
          
          	//自動創(chuàng)建div,在dom的最頂層創(chuàng)建
          	function _joy_create_div() {
          
          		var new_id = _joy_get_new_id();
          		var stack = _joy_get_dialog_stack();
          		stack.push(new_id);
          		$(_joy_get_top_body()).last().append("<div id='" + new_id + "'></div>");
          		return new_id;
          	};
          
          	function _joy_get_top_body() {
          		var top = window.parent.document.body;
          		return $(top)
          	};
          
          	function _joy_get_cahce() {
          		var a = window.top.$.fn._cache;
          		return a;
          	};
          
          	function _joy_get_options_cache() {
          		return window.top.$.fn._options_cache;
          	};
          
          	function _joy_get_new_id() {
          		var date = new Date();
          		return date.getTime().toString();
          	};
          
          	$.joyplus.showModelDialog = function(options , ifr) {
          		if( ifr ){
          			_joy_show(options);
          		}
          		else{
          			//如果是最頂層的iframe
          			if (window.top == window) {
          				_joy_show(options);
          			} else {//如果不是最頂層的iframe,則執(zhí)行最頂層的showModelDialog方法
          				options.curDom = window;
          				window.top.$.joyplus.showModelDialog(options);
          			}
          		}
          	};
          	
          	//獲取當前對話框的options
          	$.joyplus.getDialogOption = function(){
          		var options = _joy_get_options_cache();
          		return options[options.length-1];
          	};
            
          	//延時關(guān)閉
          	$.joyplus.delayedClose = function(millisecond){
          		var dialogId = $.joyplus.getModelDialogId();
          		if(dialogId){
          			$('#'+dialogId).dialog('minimize');
          		}
          		setTimeout($.joyplus.closeModelDialog,millisecond);
          	};
            
          	$.joyplus.closeModelDialog = function() {
          		
          		if (window.top == window) {
          			var options = _joy_get_options_cache().pop();
                
                //父窗體可以實現(xiàn)onClose方法,在對話框關(guān)閉時,會調(diào)用該方法
          			if (options.onClose != undefined && $.isFunction(options.onClose)) {
          				options.onClose();
          			}
               
                //提供父窗體回調(diào)函數(shù)
          			if (options.callBack != undefined && $.isFunction(options.callBack)) {
          				options.callBack();
          			}
                
          			if (options.validObj != undefined) {
          				options.validObj.validatebox("validate");
          			}
                //獲取當前對話框id
          			var id = _joy_get_top_dialog();
          			var top = _joy_get_top_body();
          
                //釋放自動創(chuàng)建的div
          			var element = $(top).find("#" + id);
          			$(element).dialog("destroy");
          		} else {
          			window.top.$.joyplus.closeModelDialog();
          		}
          	};
          	
          	$.joyplus.messager.alert = function(title, msg, icon, fn){
          		if( eship.messages[msg] != undefined ){
          			msg = eship.messages[msg];
          		}
          		$.messager.alert(title, msg, icon, fn);
          	};
          	
          	//獲取dialog對象ID
          	$.joyplus.getModelDialogId = function() {
          		var c =  _joy_get_cahce();	
          		return c[c.length - 1];
          	};
          
          	$.fn._cache = new Array();
          	$.fn._options_cache = new Array();
          
          })(jQuery);

          這樣在使用時,只需調(diào)用簡單方法即可


          主站蜘蛛池模板: 日韩在线一区二区三区免费视频| 国产一区二区三区手机在线观看| 一区二区免费电影| 国产亚洲一区二区在线观看| 国产一区二区三区免费在线观看| 精品视频一区二区三三区四区| 国产精品一区12p| 精品一区二区三区自拍图片区| 中文字幕一区二区三区免费视频 | 成人免费区一区二区三区| 国产成人高清亚洲一区久久| 国产无套精品一区二区| 丰满岳乱妇一区二区三区| 爆乳无码AV一区二区三区| 成人无码精品一区二区三区| 久久毛片一区二区| 伊人色综合视频一区二区三区| 日韩人妻一区二区三区免费| 日韩人妻精品无码一区二区三区 | 波多野结衣中文一区二区免费| 精产国品一区二区三产区| 国产一区二区好的精华液| 好爽毛片一区二区三区四无码三飞 | 久久无码人妻一区二区三区| 91福利视频一区| 亚洲国产激情在线一区| 久久一区二区三区精华液使用方法 | 国产日韩视频一区| 日韩视频在线一区| 亚洲国产综合无码一区二区二三区 | 亚洲av无码一区二区三区观看| 乱子伦一区二区三区| 亚洲乱色熟女一区二区三区蜜臀| 免费无码A片一区二三区| 波多野结衣一区二区三区高清av| 国产精品女同一区二区久久| 久草新视频一区二区三区| 色噜噜狠狠一区二区| 波多野结衣在线观看一区二区三区 | 一级毛片完整版免费播放一区| 精品成人一区二区三区四区|