以前覺得自己手寫乙個類似layui的彈出層是挺遙遠的事,因為完全沒有頭緒,即便在layui官網知道layui使用的都是c3動畫
之前試過控制width:0;height:0來做動畫,結果慘不忍睹,直到幾天前靈機一動聯想到了transform的scale屬性,才稍微觸及到了皮毛
為了不新增格外的html結構,所以彈出層也是動態生成
layui彈出框和遮罩層是同級結構,而我把彈出框放遮罩層裡了,所以關閉時要用animationend來監聽,彈出框做完動畫後才刪除遮罩層
確認框confirm之前也想跟原生confirm一樣,通過返回布林值來進行流程控制,結果為undefined,因為在呼叫時就已經返回了,而不是點了「確定「」才有返回值,這裡和原生的不一樣,所以跟layui一樣使用callback
html
js
function msgalert() );
settimeout(function () , delay);
};this.confirm = function (msg, callback) );
$('#msgalert').on('click', '.close', function () );
$('#msgalert').on('click','.cancel',function () )
};this.destroy = function () );
$('#msgalert').addclass('alert-hide');}}
window.pop = new msgalert();
$('#btn-alert').click(function () )
css
總結:
動畫效果還不夠好,而且有bug,確認框**裡使用提示框的話會有問題,因為兩者用的是同樣的id,這個可能需要動態生成id來解決衝突問題
彈出框滑鼠拖拽、視窗resize()事件、初始化時的引數設定等等也沒有
通過transform:translate(-50%,-50%)方式居中好像會出現字和邊框模糊的問題,難道layui是為了避免此問題,才動態給彈出框賦top、left?
還差得太遠,繼續加油吧
layui彈出層基礎引數
一 type 層型別 型別 number 預設為0 資訊框 1 頁面層 可以在頁面新增html內容 2 iframe層 3 載入層 載入時顯示的彈出框 4 tips層 需要繫結id就不展示了 二 title標題 引數型別 string,array,boolean string 即標題的文字 arra...
layui框架(彈出層和輪播)
一 彈出層 src layer.js script layer.msg hello script 2 在 layui 中使用 layer layui.use layer function script 3 彈出層屬性的使用方法type 基本層型別 layer提供了5種層型別 可傳入的值有 0 資訊框...
layui彈出層根據瀏覽器大小選擇彈出層大小
layui彈出層根據螢幕大小選擇彈出層大小 彈出層方法 layer.open 判斷瀏覽器大小方法 function screen else if width 992 else if width 768 else 1 window width 需要引用jquery.js檔案,它是jquery方法。而w...