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的多级联动代码
Jan 24 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
javascript运动详解
Jul 06 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
Apr 20 Javascript
jQuery原理系列-css选择器的简单实现
Jun 07 Javascript
jQuery实现的可编辑表格完整实例
Jun 20 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
利用JS提交表单的几种方法和验证(必看篇)
Sep 17 Javascript
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
node 命令方式启动修改端口的方法
May 12 Javascript
Openlayers绘制聚合标注
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
php 常用字符串函数总结
2008/03/15 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
Node.js文件操作详解
2014/08/16 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
python处理html转义字符的方法详解
2016/07/01 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
基于树莓派的语音对话机器人
2019/06/17 Python
python中time库的实例使用方法
2019/10/31 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
咖啡书吧创业计划书
2014/01/13 职场文书
白酒市场营销方案
2014/02/25 职场文书
员工保密协议书
2014/09/27 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
Nginx动静分离配置实现与说明
2022/04/07 Servers