swiper 实现滑动解锁
最近项目中有这样一个需求,研究了两种写法一个原生,一个使用框架
原生写法:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <link rel="stylesheet" href="css/huapin.css" />
- <!-- <link rel="stylesheet" href="css/swiper.min.css" />-->
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
- </head>
- <body>
- <div class="page2">
- <div class="silder_bg">
- <span>滑动滑动</span>
- <!--滑动的白点-->
- <img src="data:images/1closeLight.png" class="p2_bg1" /> //充当一个提示过度的效果
- <!--手滑动关闭图-->
- <img src="data:images/2closeBar.png" id='silder' class="p2_bg2"/>
- </div>
- </div>
- <div class="page3">
- </div>
- </body>
- <script src="js/zepto.js"></script>
- <script>
- document.getElementById('silder').addEventListener('touchmove',function(event){ //使用touchmove监听滑动
- event.preventDefault();
- var el = event.target;
- var touch = event.touches[0];
- var curX = touch.pageX - this.offsetLeft - 73;
- if(curX <= 0) return;
- if(curX > 224){
//符合条件需要执行的事件- $(".page2").hide();
- $(".page3").show();
- setTimeout(function(){
- p2show()
- },2000);
- }
- el.style.webkitTransform = 'translateX(' + curX + 'px)';//使其在x轴位移
- },false);
- document.getElementById('silder').addEventListener('touchend', function(event) { //使用touchend监听滑动结束
- this.style.webkitTransition = '-webkit-transform 0.3s ease-in';
- this.addEventListener( 'webkitTransitionEnd', function( event ) { this.style.webkitTransition = 'none'; }, false );
- this.style.webkitTransform = 'translateX(0px)';
- }, false);
- </script>
- </html>
- huapin.css:
- *{
- border:;
- margin:;
- overflow: hidden;
- }
- html,body{
- width: 100%;
- height: 100%;
- }
- .page2{
- position: fixed;
- top:;
- left:;
- width: 100%;
- height: 100%;
- }
- .page2>.bg2{
- position: fixed;
- top:;
- left:;
- height: 100vh;
- width: 100vw;
- background-color: #000000;
- opacity: 0.6;
- }
- .silder_bg{
- width: 78vw;
- height: 10vh;
- position: absolute;
- top:5vh;
- left:;
- right:;
- margin: 0 auto;
- z-index:;
- background-color: #F2F2F2;
- border-radius: 6vh;
- }
- .p2_bg1{
- width: 10vh;
- height: 10vh;
- position: absolute;
- top:;
- left: 20vw;
- right:;
- z-index:;
- animation: light 3s linear infinite;
- -webkit-animation:light 3s linear infinite;
- }
- /*滑动css3动画*/
- @keyframes light{
- from{left:12vw;}
- to{left:60vw ;}
- }
- @-webkit-keyframes light{
- from{left:10vw;opacity: 0.4;}
- to{left:55vw ;opacity: 0.4;}
- }
- .p2_bg2{
- width: 10vh;
- height: 10vh;
- position: absolute;
- top:;
- left:;
- right:;
- z-index:;
- }
- .silder_bg span{
- width: 78vw;
- height: 5vh;
- position: absolute;
- top:3vh;
- left: 4vw;
- right:;
- z-index:;
- font-family: "微软雅黑";
- font-size:14px ;
- text-align: center;
- }
以上是原生的写法,还可以使用jq的拖拽(draggable)这个方法
下面说下使用swiper的写法
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Swiper Playground</title>
- <link rel="stylesheet" href="css/swiper.min.css">
- <link rel="stylesheet" href="css/huapin.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
- <style>
- html,
- body {
- position: relative;
- height: 100%;
- }
- body {
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
- font-size: 14px;
- color: #000;
- margin: 0;
- padding: 0;
- }
- .swiper-container {
- width: 100%;
- height: 100%;
- z-index: 300;
- }
- img {
- width: 100%;
- }
- .swiper-slide {
- z-index: 300;
- }
- .p2_bg {
- width: 10vh;
- height: 10vh;
- z-index: 300;
- }
- </style>
- </head>
- <body>
//html布局同上面,只是加了个swiper-container容器- <div class="silder_bg">
- <span>滑动滑动</span>
- <!--滑动的白点-->
- <img src="data:images/1closeLight.png" class="p2_bg1" />
- <!--手滑动关闭图-->
- <div class="swiper-container">
- <div class="swiper-wrapper">
- <div class="swiper-slide"> //去掉swiper.min.css对swiper-slide的默认样式
- <img src="data:images/2closeBar.png" class="p2_bg" />
- </div>
- </div>
- </div>
- </div>
- <script src="js/zpto.js"></script>
- <script src="js/swiper.min.js"></script>
- <script>
简单思路:滑动swiper时监听滑动距离判断条件即可- var swiper = new Swiper('.swiper-container', {
- slidesPerView: 'auto',
- freeMode: true,
- on: {
- touchMove: function() {
- // alert(swiper.translate)
- if(swiper.translate > 130) {
- $(".silder_bg").fadeOut(500)
- }
- },
- },
- });
- </script>
- </body>
- </html>
以上两种写法,原生的实现起来互动的更加快速,swiper滑动的相对有弹性一点,所要监听的距离更短,也可实现效果
swiper 实现滑动解锁的更多相关文章
- hiho_1054_滑动解锁
题目大意 智能手机九点屏幕滑动解锁,如果给出某些连接线段,求出经过所有给出线段的合法的滑动解锁手势的总数.题目链接: 滑动解锁 题目分析 首先,尝试求解没有给定线段情况下,所有合法的路径的总数.可以使 ...
- hihocoder#1054 : 滑动解锁(深度优先搜索)
描述 滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图案.方向上 ...
- Swift: 打造滑动解锁文字动画
原文:Swift: 打造滑动解锁文字动画 最近木事,找出来玩了玩facebook的paper.到处都是那个"slide to unlock your phone"的效果啊.忽闪忽闪 ...
- Selenium模拟JQuery滑动解锁
滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路. 首先先看个例子. https://www.helloweba.com/demo/2017 ...
- hihocoder 1054 滑动解锁 dfs
详细分析见滑动解锁分析 AC代码 #include <cstdio> #include <cmath> #include <cctype> #include < ...
- C语言 · 滑动解锁
题目:滑动解锁 滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图 ...
- angular ng-repeat元素swiper无法滑动问题解决
前言 angular中ng-repeat元素swiper无法滑动,angular与swiper冲突. 1.问题 在项目中,我需要利用ng-repeat循环li,比如一个nav导航条,在加入swiper ...
- jq实现简单的滑动解锁效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- APP九宫格滑动解锁的处理
写手机自动化测试脚本关于APP九宫格滑动解锁方面采用了appium API 之 TouchAction 操作. 先是用uiautomatorviewer.bat查询APP元素坐标: 手工计算九宫格每个 ...
随机推荐
- Docker的iptables规则在iptables重启后丢失
前因后果 1.在跳板机上使用ansible命令测试机器B时,报错如下,于是就怀疑是网络防火墙的问题 10.10.0.86 | FAILED >> { "failed": ...
- java方式实现归并排序
一.基本思想 归并排序是建立在归并操作上的一种排序算法,该算法是采用分治法的一个典型应用.具体操作如下:所谓的分治就是分而治之,以一分为二的原则,先把序列平均分解成二个左右子序列,然后递归左右二个子序 ...
- 02 . Redis哨兵
Redis高可用概述 在 Web 服务器中,高可用 是指服务器可以 正常访问 的时间,衡量的标准是在 多长时间 内可以提供正常服务(99.9%.99.99%.99.999% 等等).在 Redis ...
- GNS3配置问题(持续更新)
GNS3配置问题 1.关于All in One的GNS3提示"判断dynamips版本失败"的解决办法 当我们找到GNS3根目录里的dynamips.exe,执行会报错告诉我们缺少 ...
- java 单列集合总结
Collection 接口 add() remove() contains() clear(); size(); 迭代器遍历(普通迭代器,不能再遍历过程中修改集合的长度) List接口 单列集合 有序 ...
- Java实现 LeetCode 234 回文链表
234. 回文链表 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否 ...
- Java实现 LeetCode 121 买卖股票的最佳时机
121. 买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不 ...
- 记一次mysql修复错误数据问题
问题描述 之前做的一个服务端配合硬件端的项目,今天突然在微信上跟我讲在管理后台订单列表里的设备编号看不见后3位数字. 原因查找 看了下数据库表发现原因是因为订单表的设备编号长度限制了16位(开发时跟硬 ...
- 温故知新-多线程-深入刨析CAS
文章目录 摘要 CAS是什么? CAS是如何实现的? CAS存在的问题? 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 ...
- Andorid中写文件后在电脑上看不到的解决办法
每次通过输出流往SD卡写入文件,连接上电脑,用MTP的方式模拟一个移动磁盘,打开磁盘却没有这样一个文件,而通过adb的方式查看就有,造成这个现象的原因是,每次写入之后,MTP的数据库并没有更新,因为更 ...