js实现类似iphone的网页滑屏解锁功能示例【附源码下载】


Posted in Javascript onJune 10, 2019

本文实例讲述了js实现类似iphone的网页滑屏解锁功能。分享给大家供大家参考,具体如下:

iphone 的出现,打破了人们的用户体验,这一用户体验也延伸到了网页设计上。最近看到很多blog的评论都用类似iphone滑动解锁的方式实现。只有滑动解锁之后才能评论,或者做其他的事情。这个功能的实现,其实并不麻烦,关键是要有好的美工,做出好的滑动图片,然后javascript配合CSS就可以完成,我在这里也简单实现了一个,基本功能如下

1. 打开页面时隐藏评论框,你可以做成disable形式,下载源码后可以修改。
2. 滑动解锁图片,显示评论框,你可以做成让textarea字段enable方式。
3. 采用原生javascript实现,兼容ie,firefox,chrome,safari.

效果图基本如下:

js实现类似iphone的网页滑屏解锁功能示例【附源码下载】

js实现类似iphone的网页滑屏解锁功能示例【附源码下载】

你可以改动部分源代码测试,加入你自己想要的逻辑。

源代码贴在下面,你也可以在文章的最后下载:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>yihaomen.com js滑屏解锁</title>
<style type="text/css"> 
#slider_comment{position:relative;width:426px;height:640px;margin:10px auto;}
#lock{width:200px;height:30px;border:1px dashed #ccc;line-height:30px;}
#lock span{position:absolute;width:45px;height:30px;cursor:pointer;background:url(img/arrow.png) no-repeat;}
</style>
<script type="text/javascript"> 
window.onload = function ()
{
  var slider_comment = document.getElementById("slider_comment");
  var oLock = document.getElementById("lock");
  var oBtn = oLock.getElementsByTagName("span")[0];
  var comment=document.getElementById('comment');
  var disX = 0;
  var maxL = oLock.clientWidth - oBtn.offsetWidth;  
  oBtn.onmousedown = function (e)
  {
    var e = e || window.event;
    disX = e.clientX - this.offsetLeft;
    document.onmousemove = function (e)
    {
      var e = e || window.event;
      var l = e.clientX - disX;
      l < 0 && (l = 0);
      l > maxL && (l = maxL);      
      oBtn.style.left = l + "px";      
      oBtn.offsetLeft == maxL && (comment.style.display="block",oLock.innerHTML = "请输入评论内容");
      return false;
    };
    document.onmouseup = function ()
    {
      document.onmousemove = null;
      document.onmouseup = null;
      oBtn.releaseCapture && oBtn.releaseCapture();
      oBtn.offsetLeft > maxL / 2 ?
        startMove(maxL, function ()
        {
          comment.style.display="block";
          oLock.innerHTML = "请输入评论内容";
          oLock.style.display = "block";
        }) :
        startMove(0)
    };
    this.setCapture && this.setCapture();
    return false
  };
  function startMove (iTarget, onEnd)
  {
    clearInterval(oBtn.timer);
    oBtn.timer = setInterval(function ()
    {
      doMove(iTarget, onEnd)
    }, 30)
  }
  function doMove (iTarget, onEnd)
  {
    var iSpeed = (iTarget - oBtn.offsetLeft) / 5;
    iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
    iTarget == oBtn.offsetLeft ? (clearInterval(oBtn.timer), onEnd && onEnd()) : oBtn.style.left = iSpeed + oBtn.offsetLeft + "px"
  }
};
</script>
</head>
<body>
<div id="slider_comment">
<div id="lock"><span></span></div>
<div id="comment" style="width:500px;height:200px;display:none;">
  <textarea id="comment_text" rows=5 style="width:500px;height:200px;border:1px solid #ccc;"></textarea>
</div>
</div>
</body>
</html>

源码点击此处本站下载

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript应用:Iframe自适应其加载的内容高度
Apr 10 Javascript
js 格式化时间日期函数小结
Mar 20 Javascript
Javascript/Jquery——简单定时器的多种实现方法
Jul 03 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
tangram.js库实现js类的方式实例分析
Jan 06 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 Javascript
Node.js API详解之 timer模块用法实例分析
May 07 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 #jQuery
对node通过fs模块判断文件是否是文件夹的实例讲解
Jun 10 #Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 #Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 #Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 #Javascript
浅谈ECMAScript 中的Array类型
Jun 10 #Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 #Javascript
You might like
PHP实现时间轴函数代码
2011/10/08 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
2018/01/31 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
python重试装饰器的简单实现方法
2019/01/31 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python 创建守护进程的示例
2020/09/29 Python
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
详解CSS3浏览器兼容
2022/12/24 HTML / CSS