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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
Apr 30 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
Nov 09 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
详解JavaScript的内置对象
Dec 07 Javascript
JS打印彩色菱形的实例代码
Aug 15 Javascript
layui table单元格事件修改值的方法
Sep 24 Javascript
vue 取出v-for循环中的index值实例
Nov 09 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 Javascript
JavaScript实现筛选数组
Mar 02 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
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
php实现httpclient类示例
2014/04/08 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
python快速排序代码实例
2013/11/21 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
django2.0扩展用户字段示例
2019/02/13 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python数据分析:关键字提取方式
2020/02/24 Python
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
自荐信如何制作?
2014/02/21 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
公司活动总结范文
2014/07/01 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
纪委立案决定书
2015/06/24 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技