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 相关文章推荐
8个超棒的学习 jQuery 的网站 推荐收藏
Apr 02 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
Aug 01 Javascript
基于jQuery实现的美观星级评论打分组件代码
Oct 30 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
Bootstrap源码解读导航条(7)
Dec 23 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
JavaScript模块化之使用requireJS按需加载
Apr 12 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 Javascript
浅谈小程序 setData学问多
Feb 20 Javascript
vue中keep-alive内置组件缓存的实例代码
Apr 16 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
来自PHP.NET的入门教程
2006/10/09 PHP
常用的php对象类型判断
2008/08/27 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
JavaScript 参考教程
2006/12/29 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
nodejs简单实现操作arduino
2016/09/25 NodeJs
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
如何利用Fabric自动化你的任务
2016/10/20 Python
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
法学毕业生自荐信
2013/11/13 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
房产公证书
2015/01/23 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
工作证明书
2015/06/15 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书