js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
作者:轻舞肥羊 发布时间:2024-04-16 09:24:09
标签:js,iphone,滑屏解锁
本文实例讲述了js实现类似iphone的网页滑屏解锁功能。分享给大家供大家参考,具体如下:
iphone 的出现,打破了人们的用户体验,这一用户体验也延伸到了网页设计上。最近看到很多blog的评论都用类似iphone滑动解锁的方式实现。只有滑动解锁之后才能评论,或者做其他的事情。这个功能的实现,其实并不麻烦,关键是要有好的美工,做出好的滑动图片,然后javascript配合CSS就可以完成,我在这里也简单实现了一个,基本功能如下
1. 打开页面时隐藏评论框,你可以做成disable形式,下载源码后可以修改。
2. 滑动解锁图片,显示评论框,你可以做成让textarea字段enable方式。
3. 采用原生javascript实现,兼容ie,firefox,chrome,safari.
效果图基本如下:
你可以改动部分源代码测试,加入你自己想要的逻辑。
源代码贴在下面,你也可以在文章的最后下载:
<!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程序设计有所帮助。
来源:http://www.yihaomen.com/article/js/298.htm


猜你喜欢
- docker安装mysqldocker search mysql 搜索docker pull mysql:5.6
- 本文实例讲述了Python实现读写sqlite3数据库并将统计数据写入Excel的方法。分享给大家供大家参考,具体如下: src
- 前言在前几天的文章中我们讲解了如何从Word表格中提取指定数据并按照格式保存到Excel中,今天我们将再次以一位读者提出的真实需求来讲解如何
- 好多次在不同场合,都听到有同行提到“做产品比做设计更有前途”,或者“别做设计了,做产品吧”类似的观点。我不认为它们之间有什么可比性,因为这么
- 使用access数据库时可能用到的数据转换:类型转换涵数:函数 返回类型 expression 参数范围CBool Boolean 任何有效
- 本文实例讲述了php实现的一段简单概率相关代码。分享给大家供大家参考,具体如下:<?phpfor($i=1;$i<100000;
- 总览在Python中,您需要通过打开文件来访问文件。您可以使用 open()函数来实现。Open 返回一个文件对象,该文件对象具有用于获取有
- 前言做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动、点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文
- 最简单的php语句把数据库*.sql文件导入数据库 $sql=file_get_contents("text.sql")
- Python使用Try Exception来处理异常机制 若Exception中有Try对应的异常处理,则Try - exception之后
- 1. ES语法的getter和setter在开始了解 Vue 的数据响应式原理前应该先搞清楚 ES语法 中的 getter 和 setter
- 微博如火如荼,大家都选择用微博带来社会化流量,顺便推广产品和网站,几乎所有的网站都有分享到代码,但是还有一种更快捷的分享方式,javascr
- 一、创建数据库标准1.表的必备三个字段:id、gmt_create、gmt_modified2.gmt_create是创建时间,gmt_mo
- 1、如何认识可视化?需要指出的是,虽然不同绘图工具包的功能、效果会有差异,但在常用功能上相差并不是很大。与选择哪种绘图工具包相比,更重要的是
- set转成list方法如下: list转成set方法如下:s = set('12342212') &n
- 前言新手程序员大概有如下特点if嵌套经常超过3层、经常出现重复代码、单个函数代码特别长。只会crud,对语言特性和语言的边界不了解。不懂面向
- 效果图实例代码今天我们要用微信小程序实现2048小游戏,效果图如上面所示。游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字
- 一、什么是数据库连接池就是一个容器持有多个数据库连接,当程序需要操作数据库的时候直接从池中取出连接,使用完之后再还回去,和线程池一个道理。二
- 基础理论第一层:卷积层。第二层:卷积层。第三层:全连接层。第四层:输出层。图中原始的手写数字的图片是一张 28×28 的图片,并且是黑白的,
- 概述通过自定义网络, 我们可以自己创建网络并和现有的网络串联起来, 从而实现各种各样的网络结构.SequentialSequential 是