1. 程式人生 > >關於jquery的彈窗元件簡單封裝

關於jquery的彈窗元件簡單封裝

前言:由於自己工作時多數是基於移動端的頁面工程,很多時候都需要用到彈窗元件,網上也有很多好用,五花八門的彈窗外掛,但是由於網上各個版本有些功能過於強大,導致外掛大小比較大,有些樣式不好自己進行各種自定義設計,有些則是達不到自己想要的那種需求,比如實現彈窗按鈕的各種回撥函式,於是自己就根據公司目前專案的需求 ,自己簡單封裝了一個彈窗元件。

可簡單自定義各式各樣的樣式
這裡寫圖片描述

思路分析:

  1. 宣告一個帶有物件引數的函式
var alert = function(param){...}
  1. 對函式引數進行賦值拆分
var title = param.title,
    content = param.content,
    yes
Text = param.yesText || '確定', noText = param.noText, yesFn = param.yesFn, noFn = param.noFn;
  1. 構建html結構
var htm = "";
htm += '<div class="lacy-alert"><div class="bgd">';
if (title) htm += '<header class="hd">' + title + '</header>';
htm += '<div class="bd">' + content + '</div
></div>'; if (!noText){ htm += '<footer class="fd">' + '<a href="#" class=" alert-btn alert-btn-lg" data-role="closeBtn" id="yes_long_btn">' + yesText + '</a>' + '</footer>'; htm += '</div>'; } else{ htm += '<footer class="fd">' + '<a href="#"
class=" alert-btn alert-btn-st" id="yes_btn">' + yesText + '</a>' + '<a href="#" class=" alert-btn alert-btn-st" data-role="closeBtn">' + noText + '</a>' + '</footer>'; htm += '</div>'; }
  1. 將彈窗結構放入頁面
$("body").append(htm);
  1. 彈窗按鈕處理
 var al = $(".lacy-alert");
 al.on("click", '[data-role="closeBtn"]', function() {
     $(".lacy-alert").remove();
 });

 $("#yes_btn,#yes_long_btn").bind("click" , function () {
     $(".lacy-alert").remove();
     if(param.yesFn){
         param.yesFn();
     }
     param = {};
 });
  1. 函式呼叫
alert({
    title:'提示',
    content:'我是彈窗',
    noText:'no',
    yesText:'yes'
})
  1. 自定義樣式
/*alert元件*/

.lacy-alert{position:fixed; top:50%;left:50%; z-index:1000; border-radius:12px; width:80%;  background:#fff;overflow: hidden;-webkit-transform:translateX( -50% ) translateY( -50% );transform:translateX( -50% ) translateY( -50% );  -webkit-box-sizing:border-box;  box-sizing:border-box; color: #484848;border: 1px #22b2e1 solid;max-width: 600px}
.lacy-alert .bgd{padding: .5rem;line-height: 1.5;}
.lacy-alert .hd{height:40px; line-height:40px; text-align: center;font-size:.9rem;}
.lacy-alert .bd{margin: 1rem .5rem 0;font-size:.75rem;height: 3.5rem;text-align: center}
.lacy-alert .bd p{font-size:14px; padding:0; line-height: 1.5em;}
.lacy-alert .fd{padding:.4rem 0; text-align:center;height: 2.4rem; line-height: 2.4rem}
.lacy-alert .alert-btn{ outline:none; display:inline-block !important; height:1.5rem; line-height:1.5rem; padding:0 16px; color:#fff; font-size:.9rem; text-align:center; vertical-align:middle; border:none; border-radius:4px; box-sizing:border-box;}
.lacy-alert .alert-btn-lg{width:30%;color:#22b2e1; text-align:center;border-radius: 8px;}
.lacy-alert .alert-btn-st{width:48%;color:#22b2e1; text-align:center;}

相關推薦

關於jquery元件簡單封裝

前言:由於自己工作時多數是基於移動端的頁面工程,很多時候都需要用到彈窗元件,網上也有很多好用,五花八門的彈窗外掛,但是由於網上各個版本有些功能過於強大,導致外掛大小比較大,有些樣式不好自己進行各種自定義設計,有些則是達不到自己想要的那種需求,比如實現彈窗按鈕的各

論如何用Vue實現一個-一個簡單元件實現

前言 最近在使用element-ui框架,用到了Dialog對話方塊元件,大致實現的效果,跟我之前自己在移動端專案裡面弄的一個彈窗元件差不太多。然後就想著把這種彈窗元件的實現方式與大家分享一下,下面本文會帶著大家手摸手實現一個彈窗元件。 本文主要內容會涉及到

封裝React AntD的dialog元件

前一段時間分享了基於vue和element所封裝的彈窗元件(封裝Vue Element的dialog彈窗元件),今天就來分享一個基於react和antD所封裝的彈窗元件,反正所使用的技術還是那個技術,情況還是那個情況。只是基於vue所封裝的彈窗元件和基於react所封裝的彈窗元件還是有很大差別的。一樣的是封裝

篩選控制元件簡單封裝總結

嘗試封裝一個篩選控制元件,能提供各屬性進行自定義修改。專案中註釋地比較詳細,而且程式碼也不復雜,可以根據自己的需求進行自定義修改。 demo地址:https://github.com/liujunwei2018/The-drop-down-menu 效果演示: &nb

React元件

原文地址 小寒的部落格 這裡的彈窗泛指所有的彈出元件,這些元件不受頁面其他UI佈局影響,處於DOM結構的頂層,絕對定位在body元素下。   這個特殊性也給它的開發提出了特殊的要求。   react新版本中的createPortal Api可以很方便的製造一個元件到制定的dom裡

有贊元件的bug處理

近期做小程式商城專案中引用了有讚的彈窗元件,出現兩個bug 滾動穿透 因為彈窗上面也有滾動事件,所以簡單地新增catchtouchmove並不能解決問題。解決方案,動態新增樣式類 .noScroll{ top:0px; left: 0px; width: 1

jquery 外掛 layer

layer是一款近年來備受青睞的web彈層元件,她具備全方位的解決方案,致力於服務各水平段的開發人員,您的頁面會輕鬆地擁有豐富友好的操作體驗。 功能的一些展示: //初體驗 layer.alert('內容') //第三方擴充套件面板 layer.alert('內

從零開始徒手擼一個vue的toast元件

相信普通的vue元件大家都會寫,定義 -> 引入 -> 註冊 -> 使用,行雲流水,一氣呵成,但是如果我們今天是要自定義一個彈窗元件呢? 首先,我們來分析一下彈窗元件的特性(需求): 0. 輕量 –一個元件小於 1Kib (實際打包完不到0

6、用vue2.0extend寫alert模態框元件

通過Vue.extend建立元件構造器的方法寫彈窗元件 alert.js檔案程式碼 import Vue from 'vue' // 建立元件構造器 const alertHonor = Vue.extend(require('./alert.vue')); var cu

自己整理一個div的jquery效果

js: function letDivCenter(divName) { var top = $(divName).height(); var left = ($(window).width() - $(divName).width(

元件

function popUp(){ _this = this; } popUp.prototype = { init:function(){ _this.drag() _this.mark(); }, mark:function(){

django layer元件使用

父層: <div class="col-xs-12"> <div class="box"> <div class="box-header"> <

jQuery

總結一些一個基於jQuery的彈出層外掛。支援多視窗,拖動,最大化最小化,固定定位,相對於某個位置定位,具有簡化的Tips模式。可以自定義外觀等等,具體的看引數和演示 引數說明: 名稱 說明 type 彈出層型別,可選[dialog|tips](預設為“dialog”) th

原生js元件練習

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

自定義小程式元件

自己寫的不限制字數的彈窗,因為原生的彈窗限制字數,就無聊寫了一個,不是很好,可自行優化。 描述  小程式彈窗使用方法  引入元件相關檔案     在使用彈窗的頁面引入元件    <toast id="toast" params="{{params}}"></toast>  在app.w

元件詳細設計

彈窗 文字輸入 輸入文字,確定,取消 不需要後端給資料支援 單選 單選選中,確定,取消 彈窗內列表選值,篩選功能(首字母篩選) [ { "n

vue元件練習

彈窗是一個專案必備的複用利器,所以封裝起來,保證專案ui一致,是很有必要的。學了一段時間vue,想想還是用vue寫一下吧。用的很小白,但是會寫出來了,說明我也有進步一丟丟了。繼續加油…. 程式碼貼圖如

vue3系列:vue3.0自定義全域性層V3Layer|vue3.x pc桌面端元件

基於Vue3.0開發PC桌面端自定義對話方塊元件V3Layer。 前兩天有分享一個vue3.0移動端彈出層元件,今天分享的是最新開發的vue3.0版pc端彈窗元件。 V3Layer 一款使用vue3.0開發的多功能PC網頁端自定義彈窗元件。擁有超過10+種彈窗型別、30+種引數配置,支援拖拽(自定義

JavaScript封裝自己的一個,是雙按鈕的,比較簡單一些 ,其中引用了jQuery來寫的方法,最後暴露出去,有更好的建議歡迎評論 。。。。

$(function(){ // 設定自執行函式 (function(jQuery){ // 定義建構函式 var Popup = function (title,text,fn) { this.title = title || '

OC 簡單封裝UIAlertController實現單按鈕和雙按鈕

1.程式碼如下: @interface AlertView : UIView + (AlertView *)shareAlertView; /**帶有單按鈕的彈出檢視 顏色可以不填*/ - (void)alertWithTitle:(NSString *)tit