Yii2使用Bootbox插件实现自定义弹窗


Posted in Javascript onApril 02, 2015

本次尝试了一个新的小插件"bootbox"。

Yii2中使用了Bootstarp,让界面更美观,可是美中不足的是,在Gridview表格的Action里,删除功能的弹窗实在有点与Bootstrap违和,网上找到了一种解决方案,分享下使用此插件的过程。

Bootbox.js,是一个小型的JavaScript库用来创建简单的可编程对话框,基于Bootstrap的Modal(模态框)来创建。

官方说明

http://bootboxjs.com/v3.x/index.html

Bootbox.js下载

我们可以在GitHub上找到开源的bootbox.js下载

https://github.com/makeusabrew/bootbox

如何使用此插件?

结合Yii2的GridView,我们来自定义Bootbox样式的弹窗:

一、覆盖yii.js模块

Yii2自带的yii.js中定义了生成confirm对话框,以及执行action操作。

我们可以用过覆盖js方法来达到目的。

在@app/web/js/路径下创建一个javascript文件,比如main.js。

代码如下:

yii.allowAction = function ($e) {
  var message = $e.data('confirm');
  return message === undefined || yii.confirm(message, $e);
};
// --- Delete action (bootbox) ---
yii.confirm = function (message, ok, cancel) {

  bootbox.confirm(
    {
      message: message,
      buttons: {
        confirm: {
          label: "OK"
        },
        cancel: {
          label: "Cancel"
        }
      },
      callback: function (confirmed) {
        if (confirmed) {
          !ok || ok();
        } else {
          !cancel || cancel();
        }
      }
    }
  );
  // confirm will always return false on the first call
  // to cancel click handler
  return false;
}

二、注册你的资源包

需要注册bootbox.js和main.js文件。

修改文件:@app/assets/Assets.php

代码如下:

namespace backend\assets;

use yii\web\AssetBundle;

class AppAsset extends AssetBundle
{
  public $basePath = '@webroot';
  public $baseUrl = '@web';
  public $css = ['css/site.css'];
  // 注册js资源
  public $js = ['js/bootbox.js', 'js/main.js'];
  public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapAsset',
  ];
}

三、自定义Modal框

了解下bootbox.js源码,可以知道bootbox.js使用的是bootstarp的modal框,我们可以根据需求

修改bootbox.js源码中的"templates"变量,自定义Modal样式。

看下对比结果:

修改前:

Yii2使用Bootbox插件实现自定义弹窗

修改后:

Yii2使用Bootbox插件实现自定义弹窗

瞬间舒服多了,弹窗功能变的不再那么违和。类似这样的弹窗插件有很多,我想可以用同样的方法来实现使用其他的插件。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
require.js+vue开发微信上传图片组件
Oct 27 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
详解element上传组件before-remove钩子问题解决
Apr 08 Javascript
有趣的JavaScript隐式类型转换操作实例分析
May 02 Javascript
jQuery HTML css()方法与css类实例详解
May 20 jQuery
jquery制作多功能轮播图插件
Apr 02 #Javascript
Javascript中3个需要注意的运算符
Apr 02 #Javascript
原生JS实现响应式瀑布流布局
Apr 02 #Javascript
Javascript变量的作用域和作用域链详解
Apr 02 #Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 #Javascript
JavaScript中操作Mysql数据库实例
Apr 02 #Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
Apr 02 #Javascript
You might like
PHP入门速成教程
2007/03/19 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
写好自荐信的要点
2013/11/06 职场文书
同事吵架检讨书
2014/02/05 职场文书
出纳员岗位责任制
2014/02/11 职场文书
迎元旦广播稿
2014/02/22 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
何玥事迹观后感
2015/06/16 职场文书