Skip to content

Commit 5ec43c1

Browse files
author
zhangxinxu
committed
fix FastClick strange bug
fix FastClick strange bug
1 parent 1a9b169 commit 5ec43c1

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/mobilebone.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,8 @@
254254
// for title change
255255
var title = params_in.title,
256256
header = document.querySelector("h1"),
257-
first_page = document.querySelector("." + this.classPage);
257+
first_page = document.querySelector("." + this.classPage);
258+
258259
// do title change
259260
if (title) {
260261
document.title = title;
@@ -266,6 +267,18 @@
266267
// set data-title for first visibie page
267268
pageInto.setAttribute("data-title", document.title);
268269
}
270+
// Fastclick may cause slide bug in iOS8, any innerHTML change can fix it!
271+
// issues #80
272+
if (typeof FastClick != "undefined") {
273+
var mobilebone = document.querySelector("mobilebone");
274+
if (mobilebone == null) {
275+
mobilebone = document.createElement("mobilebone");
276+
mobilebone.style.position = "absolute";
277+
mobilebone.style.clip = "rect(0 0 0 0)";
278+
document.body.appendChild(mobilebone);
279+
}
280+
mobilebone.innerHTML = mobilebone.innerHTML.replace('11', '') + '1';
281+
}
269282

270283
// delete page with same id when options.remove !== false
271284
var pageid = options.id || pageInto.id;
@@ -868,7 +881,7 @@
868881
}
869882
store.timerTap = Date.now();
870883
*/
871-
884+
872885
// get target and href
873886
var target = event.target || event.touches[0], href = target.href;
874887
if ((!href || /a/i.test(target.tagName) == false) && (target = target.getParentElementByTag("a"))) {
@@ -944,15 +957,18 @@
944957
external = external || (href.replace("://", "").split("/")[0] !== location.href.replace("://", "").split("/")[0]);
945958
if ((external == true || capture == false) && target.getAttribute("data-ajax") != "true") return;
946959
}
947-
960+
948961
// judge that if it's a ajax request
949962
if (/^#/.test(target.getAttribute("href")) == true) {
950963
// hash slide
951964
var idTargetPage = href.split("#")[1], eleTargetPage = idTargetPage && document.getElementById(idTargetPage);
952965
if (back == false && rel == "auto") {
953966
back = Mobilebone.isBack(eleTargetPage, self_page);
954967
}
955-
if (eleTargetPage) Mobilebone.transition(eleTargetPage, self_page, back, options);
968+
969+
if (eleTargetPage) {
970+
Mobilebone.transition(eleTargetPage, self_page, back, options);
971+
}
956972
event.preventDefault();
957973
} else if (/^javascript/.test(href)) {
958974
// back

test/fixed-header-footer/index.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,18 @@ <h1>首页</h1>
3434
<h4><a href="#pageHome" data-rel="auto">首页</a></h4>
3535
<!--<h4><a href="1.html" data-rel="auto" data-container="container">页面1</a></h4>
3636
<h4><a href="2.html" data-rel="auto" data-container="container">页面2</a></h4>-->
37-
<h4><a href="#page1" data-rel="auto">页面3</a></h4>
38-
<h4><a href="#page2" data-rel="auto">页面3</a></h4>
37+
<h4><a href="#page1" data-rel="auto">页面1</a></h4>
38+
<h4><a href="#page2" data-rel="auto">页面2</a></h4>
3939
<h4><a href="#page3" data-rel="auto">页面3</a></h4>
4040
</div>
4141

4242

4343

4444
<script src="../../src/mobilebone.js"></script>
45+
<script src="../complex/js/fastclick.js"></script>
46+
<script>
47+
FastClick.attach(document.body);
48+
</script>
4549
<script>
4650
Mobilebone.callback = function(page_in, page_out) {
4751
var id_in = page_in.id, id_out = "";

0 commit comments

Comments
 (0)