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 相关文章推荐
jquery创建一个ajax关键词数据搜索实现思路
Feb 26 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
JS 获取select(多选下拉)中所选值的示例代码
Aug 02 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
基于JS实现Android,iOS一个手势动画效果
Apr 27 Javascript
Active控件问题小结(附解决办法)
Jun 09 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
微信小程序合法域名配置方法
May 06 Javascript
jQuery位置选择器用法实例分析
Jun 28 jQuery
JavaScript 空间坐标的使用
Aug 19 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 Javascript
浅析vue中的nextTick
Dec 28 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新手上路(十三)
2006/10/09 PHP
php cookie 登录验证示例代码
2009/03/16 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JS实现标签页切换效果
2017/05/04 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python3访问并下载网页内容的方法
2015/07/28 Python
python实现RSA加密(解密)算法
2016/02/17 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
餐饮部总监岗位职责范文
2014/02/13 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers