前端插件--fastclick解决点透问题

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport"
 6           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 7     <title>Title</title>
 8     <style>
 9         .box{
10             width: 500px;
11             height: 500px;
12             border: 1px solid #ccc;
13             position: relative;
14         }
15         .click {
16             width: 300px;
17             height: 300px;
18             background-color: blue;
19         }
20         .tap{
21             width: 200px;
22             height: 200px;
23             background-color: red;
24             position: absolute;
25             left: 0;
26             top:0;
27         }
28     </style>
29 </head>
30 <body>
31 <!--
32 touch:只能在移动端响应
33 click:延迟
34 -->
35 
36 <!--移动端的点透:
37 前提:
38 1.必须为上面的元素添加touch相关事件,并且让其消失
39 2.下面的元素必须能够响应延迟的click事件-->
40 <div class="box">
41     <div class="click"></div>
42     <div class="tap"></div>
43 </div>
44 <!--<script src="./js/common.js"></script>-->
45 <!--下面这个文件包含了touch事件-->
46 <script src="./js/zepto.min.js"></script>
47 <script src="./js/fastclick.js"></script>
48 <script>
49     /*var tap = document.querySelector(".tap");*/
50     var tap = $(".tap");
51     var click = document.querySelector(".click");
52 
53     /*tap.addEventListener("touchstart",function(){
54         tap.style.visibility = "hidden";
55     })*/
56    /* click.addEventListener("click",function(){
57         console.log(123);
58     })*/
59 
60    /* /!*使用自己封装好的Tap事件*!/
61     heima.tap(tap,function(e){
62         tap.style.visibility = "hidden"
63     });*/
64 
65     /*zepto在努力的解决点透的问题,但是没有完全解决,所以还是会出现点透的现象*/
66     /*tap.on("tap",function(e){
67         tap[0].style.visibility = "hidden"
68     });
69     click.addEventListener("click",function(){
70         console.log(123);
71     })*/
72 
73     /*fastclick:实现pc和移动端的单击事件的兼容,意味着使用fastclick来绑定事件,可以做到pc和移动都能响应
74     * 况且它解决了:
75     * 1.解决了touch事件在pc端无法响应的问题
76     * 2.解决了click事件在移动端延迟的问题
77     * 3.没有点透*/
78 
79     /*dom方式:*/
80     if ('addEventListener' in document) {
81         document.addEventListener('DOMContentLoaded', function() {
82             /*如果对body绑定,那么意味着body下面的所有元素都会使用fastclick来进行单击事件的处理*/
83             FastClick.attach(document.body);
84         }, false);
85     }
86 
87 
88     tap[0].addEventListener("click",function(){
89         tap[0].style.visibility = "hidden"
90     })
91     click.addEventListener("click",function(){
92         console.log(123);
93     })
94 </script>
95 </body>
96 </html>

 

posted @ 2018-01-26 23:28  QinXiao.Shou  阅读(1469)  评论(0编辑  收藏  举报