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 相关文章推荐
用apply让javascript函数仅执行一次的代码
Jun 27 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 Javascript
javascript中一些奇葩的日期换算方法总结
Nov 14 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
如何从零开始手写Koa2框架
Mar 22 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
Sep 28 Javascript
基于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
Terran历史背景
2020/03/14 星际争霸
解决php extension 加载顺序问题
2019/08/16 PHP
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
微信小程序-API接口安全详解
2019/07/16 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python hash每次调用结果不同的原因
2019/11/21 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
python爬取抖音视频的实例分析
2021/01/19 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
开放系统互连参考模型
2016/06/29 面试题
运动会标语
2014/06/21 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
给老婆的道歉信
2015/01/20 职场文书
2016高考寄语集锦
2015/12/04 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js