原生JS封装MessageBox

一切尽在代码中

/**
 * 消息弹窗
 * @param  {title} string 消息标题  ex:...
 * @param  {message} string 消息正文内容 ex:  bla bla ...
 * @param  {[dangerouslyUseHTMLString]} boolean 是否将 message 属性作为HTML片段处理  默认值: false
 * @param  {[callback]} fuc 消息弹窗 关闭后的回调  
 * @param  {[showClose]]} boolean 消息弹窗 是否显示右上角关闭按钮
 * @param  {[showLookDetailButton]]} boolean 是否显示查看详情按钮
 * @param  {[showLookMoreButton]} boolean 是否显示查看更多按钮
 * @param  {[lookDetailButtonText]]} string 查看详情按钮的文案
 * @param  {[lookMoreButtonText]]} string 查看更多按钮的文案
 * @param  {[lookDetailButtonCallBack]]} string 查看详情按钮点击的回调
 * @param  {[lookMoreButtonCallBack]]} string 查看更多按钮点击的回调
 */
// usage
/*
var options = new Options();
options.prototype = {
	
}
MessageBox(options);
*/
// 默认值

var Options = function(){};
Options.prototype = {
	title: '',
	message: '',
	dangerouslyUseHTMLString: 0,
	callback: function(){},
	showClose: 1,
	showLookDetailButton: 1,
	showLookMoreButton: 1,
	lookDetailButtonText: 'xxx',
	lookMoreButtonText: 'xxx',
	lookDetailButtonCallBack: function(){},
	lookMoreButtonCallBack: function(){}
}

var MessageBox = function (options) {
  // 基础dom
  var dom = document.createElement('div');
  var messageBoxContainer = document.body;
  dom.id = 'MessageBox';
  dom.style.display = 'none'; //先不展示
  var domContent = '<p class="title"></p><p class="message"></p>'; // todo 这里放切图内容
  dom.innerHTML = domContent;

  // 是否将 title message 属性作为HTML片段处理  默认值: false
  var titleDom = dom.getElementsByClassName('title')[0];
  var messageDom = dom.getElementsByClassName('message')[0];
  if (options.dangerouslyUseHTMLString) {
  	titleDom.innerHTML = options.title;
  	messageDom.innerHTML = options.message;
  } else {
  	titleDom.innerText = options.title;
  	messageDom.innerText = options.message;
  }

  // 绑定关闭弹窗的回调
  var closebuttonDom = dom.getElementsByClassName('close-button')[0]; // todo 关闭按钮的class
  closebuttonDom.onclick = function(){
  	// todo 关闭触发的 things ...
  	options.callback();
  }

  // 是否显示右上角关闭按钮
  if (!options.showClose) {
  	closebuttonDom.style.display = 'none';
  }

  var lookDetailButtonDom = dom.getElementsByClassName('look-detail-button')[0]; // todo 按钮的class
  var lookMoreButtonDom = dom.getElementsByClassName('look-more-button')[0]; // todo 按钮的class

  // 是否显示查看详情按钮
  if(!options.showLookDetailButton){
  	lookDetailButtonDom.style.display = 'none';
  }

  // 是否显示查看更多按钮
  if(!options.showLookMoreButton){
  	lookMoreButtonDom.style.display = 'none';
  }

  // 设置按钮文案
  lookDetailButtonDom.innerText = options.lookDetailButtonText;
  lookMoreButtonDom.innerText = options.lookMoreButtonText;

  // 设置按钮回调函数
  lookDetailButtonDom.onclick = function(){
  	// todo  things ... 
  	options.lookDetailButtonCallBack();
  }
  lookMoreButtonDom.onclick = function(){
  	// todo  things ...
  	options.lookMoreButtonCallBack();
  }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左钦杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值