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

JavaScript019

手机移动端美化弹窗提示确认框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>

先说下实现的思路:

1 页面布局,一堆等待滚动选择的列表 先实现一个竖排的列表,触屏能滚动,也就是说先不考虑选择的问题 写一个固定高度的盒子 把一堆待选择的列表放里面 触屏滚动大概就实现了 简单代码:

<div style="height:300px" id=“box”>

<li style="height:100px"></li>

<li style="height:100px"></li>

...

</div>

2: 滚动选择  第一步监控触屏滚动 onmousedown onmousemove onmouseup 监控鼠标触屏在box里的上下移动距离  也就是说滚动屏幕了多远  然后box scrollTop定位的减去移动的距离也就可以算出当前box距离顶部的距离 例如 mousemove -300px 原来的scrollTop为0 那现在0-(-300)=300px 那么每个li 100px 然后定位当前选中的 li标签 300/100 = 3 当前为选中了 列表中的第三个

3 以上只是提供了一个简单的实现思路  下面是别人的案例你可以看下 大体上就是这种思路实现的

网页链接

//html5 新增 touch 事件

//禁用手机默认的触屏滚动行为

document.addEventListener('touchmove', function(event) {

event.preventDefault()

}, false)

//touchstart事件

function touchSatrtFunc(evt) {

try {

//evt.preventDefault() //阻止触摸时浏览器的缩放、滚动条滚动等

var touch = evt.touches[0] //获取第一个触点

var x = Number(touch.pageX) //页面触点X坐标

var y = Number(touch.pageY) //页面触点Y坐标

//记录触点初始位置

startX = x

startY = y

} catch (e) {

alert('touchSatrtFunc:' + e.message)

}

}

//touchmove事件,这个事件无法获取坐标

function touchMoveFunc(evt) {

try {

//evt.preventDefault() //阻止触摸时浏览器的缩放、滚动条滚动等

var touch = evt.touches[0] //获取第一个触点

var x = Number(touch.pageX) //页面触点X坐标

var y = Number(touch.pageY) //页面触点Y坐标

//document.getElementById("version").innerHTML = "原:"+startY+"   "+"现:"+y

//判断滑动方向

if (y - startY > 100) {

swipeDown()

} else if(y - startY < -100){

swipeUp()

}

} catch (e) {

alert('touchMoveFunc:' + e.message)

}

}

//touchend事件

function touchEndFunc(evt) {

try {

//evt.preventDefault() //阻止触摸时浏览器的缩放、滚动条滚动等

} catch (e) {

alert('touchEndFunc:' + e.message)

}

}

//绑定事件

function bindEvent() {

document.addEventListener('touchstart', touchSatrtFunc, false)

document.addEventListener('touchmove', touchMoveFunc, false)

document.addEventListener('touchend', touchEndFunc, false)

}

//判断是否支持触摸事件

function isTouchDevice() {

//document.getElementById("version").innerHTML = navigator.appVersion

try {

document.createEvent("TouchEvent")

//alert("支持TouchEvent事件!")

bindEvent() //绑定事件

} catch (e) {

alert("不支持TouchEvent事件!" + e.message)

}

}