手机移动端美化弹窗提示确认框js特效代码

JavaScript05

手机移动端美化弹窗提示确认框js特效代码,第1张

<script type="text/javascript">

$(function(){

  $('#demo1').on('click', function(){

webToast("恭喜您,修改成功恭喜您,修改成功恭喜您修改成功恭喜您","middle",3000)

  })

  $('#demo2').on('click', function(){

popTipShow.alert('弹窗标题','自定义弹窗内容,居左对齐显示,告知需要确认的信息等', ['知道了'],

function(e){

  //callback 处理按钮事件  

  var button = $(e.target).attr('class')

  if(button == 'ok'){

//按下确定按钮执行的操作

//todo ....

this.hide()

  }

}

)

  })

  $('#demo3').on('click', function(){

popTipShow.confirm('弹窗标题','自定义弹窗内容,居左对齐显示,告知需要确认的信息等',['确 定','取 消'],

function(e){

  //callback 处理按钮事件

  var button = $(e.target).attr('class')

  if(button == 'ok'){

//按下确定按钮执行的操作

//todo ....

this.hide()

setTimeout(function() {

webToast("操作成功","top", 2000)

}, 300)

  }

  if(button == 'cancel') {

//按下取消按钮执行的操作

//todo ....

this.hide()

setTimeout(function() {

webToast("您选择“取消”了","bottom", 2000)

}, 300)

  }

}

)

  })

  $('#demo4').on('click', function(){

var html = "<label>姓名:<input class='confirm_input' placeholder='请输入'></label>"

popTipShow.confirm('弹窗标题',html,['确 定','取 消'],

function(e){

  //callback 处理按钮事件

  var button = $(e.target).attr('class')

  if(button == 'ok'){

if(null==$(".confirm_input").val() || ""==$(".confirm_input").val()){

webToast("姓名不能为空!","bottom", 3000)

return

}

this.hide()

setTimeout(function() {

webToast($(".confirm_input").val(),"bottom", 3000)

}, 300)

//按下确定按钮执行的操作

//todo ....

  }

  if(button == 'cancel') {

//按下取消按钮执行的操作

//todo ....

this.hide()

setTimeout(function() {

webToast("您选择“取消”了","top", 2000)

}, 300)

  }

}

)

  })

})

</script>

众所周知,移动端当有 fixed 遮罩背景和弹出层时,在屏幕上滑动能够滑动背景下面的内容,这就是臭名昭著的滚动穿透问题

页面弹出层上将 .modal-open 添加到 html 上,禁用 html 和 body 的滚动条

但是这个方案有两个缺点:

如果只是上面的 css,滚动条的位置同样会丢失,所以如果需要保持滚动条的位置需要用 js 保存滚动条位置关闭的时候还原滚动位置

序说明:

要实现一个简单的LightBox效果,主要有两个部分:覆盖层和高亮层。

【跨浏览器的固定定位】

首先要先说说这个东西position:fixed,它的作用是跨浏览器的固定定位。

摘自详解定位与定位应用:

“如让一个元素可能随着网页的滚动而不断改变自己在浏览器的位置。而现在我可以通过CSS中的一个定位属性来实现这样的一个效果,这个元素属性就是曾经不被支持的position:fixed他的含义就是:固定定位。这个固定与绝对定位很像,唯一不同的是绝对定位是被固定在网页中的某一个位置,而固定定位则是固定在浏览器的视框位置。”

程序中很多地方利用了这个css,ie7、ff都支持这个css,但ie6不支持,程序中只能是在ie6模拟这个效果。

【覆盖层】

覆盖层的作用是把焦点限制在高亮层上,原理是通过一个绝对定位的层(通常使用div),设置它的宽度和高度以致能覆盖整个屏幕(包括缩放和滚动浏览器的情况下),再给它设置一个比较高的zIndex来层叠在原有内容之上(但要比高亮层小),这样用户就只能点到这个层之上的内容了。