Skip to content

Commit 0ba3fa2

Browse files
committed
More demos for fixed position.
showing and hacking a workaround for mobile webkit position:fixed bug
1 parent b0b66bf commit 0ba3fa2

File tree

5 files changed

+427
-6
lines changed

5 files changed

+427
-6
lines changed

demo/bbq-fixed.html

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
}
1717
#nav {
1818
position: fixed;
19-
margin-left: -200px
19+
margin-left: -200px;
20+
width: 140px;
2021
}
2122
</style>
2223
</head>
@@ -34,15 +35,15 @@ <h2>Smooth Scroll jQuery Plugin with Back Button Support</h2>
3435
</ul>
3536
<p id="p1">p1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
3637
<p id="p2">p2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
37-
<a href="#nav">back to nav</a>
38+
3839
<p id="p3">p3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
39-
<a href="#nav">back to nav</a>
40+
4041
<p id="p4">p4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
41-
<a href="#nav">back to nav</a>
42+
4243
<p id="p5">p5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
43-
<a href="#nav">back to nav</a>
44+
4445
<p id="p6">p6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
45-
<a href="#nav">back to nav</a>
46+
4647

4748
</div>
4849
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>

demo/fixed-fix.html

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Smooth Scroll jQuery Plugin Demo</title>
6+
<style type="text/css">
7+
body {
8+
font-family: "Helvetica Neue", Helvetica, sans-serif;
9+
}
10+
.container {
11+
margin: 40px auto;
12+
width: 300px;
13+
}
14+
h2 {
15+
text-align: center;
16+
}
17+
.mainnav {
18+
position: fixed;
19+
margin-left: -300px;
20+
width: 140px;
21+
}
22+
23+
</style>
24+
25+
</head>
26+
<body>
27+
<div class="container">
28+
29+
<ul class="mainnav">
30+
<li><a href="#p1">p1</a></li>
31+
<li><a href="#p2">p2</a></li>
32+
<li><a href="#p3">p3</a></li>
33+
<li><a href="#p4">p4</a></li>
34+
<li><a href="#p5">p5</a></li>
35+
</ul>
36+
37+
<h3>Stupid hack to fix mobile webkit bug</h3>
38+
39+
<pre>
40+
$(document).ready(function() {
41+
42+
var $stupid = $('&lt;div&gt;&lt;/div&gt;')
43+
.height(1)
44+
.hide()
45+
.appendTo('body');
46+
47+
var mobileHack = function() {
48+
$stupid.show();
49+
setTimeout(function() {
50+
$stupid.hide();
51+
}, 10);
52+
};
53+
54+
$('ul.mainnav a').smoothScroll({
55+
afterScroll: mobileHack
56+
});
57+
58+
});
59+
60+
</pre>
61+
62+
<p id="p1">p1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
63+
<p id="p2">p2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
64+
<p id="p3">p3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
65+
<p id="p4">p4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
66+
<p id="p5">p5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
67+
<p id="p6">p6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
68+
69+
</div>
70+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
71+
<script>!window.jQuery && document.write(unescape('%3Cscript src="../lib/jquery/jquery.js"%3E%3C/script%3E'));</script>
72+
73+
<script src="../src/jquery.smooth-scroll.js"></script>
74+
<script>
75+
$(document).ready(function() {
76+
77+
var $stupid = $('<div></div>')
78+
.height(1)
79+
.hide()
80+
.appendTo('body');
81+
82+
var mobileHack = function() {
83+
$stupid.show();
84+
setTimeout(function() {
85+
$stupid.hide();
86+
}, 10);
87+
};
88+
89+
$('ul.mainnav a').smoothScroll({
90+
afterScroll: mobileHack
91+
});
92+
93+
});
94+
95+
</script>
96+
</body>
97+
</html>

demo/fixed-nojs-fix.html

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Mobile Webkit position:fixed Demo</title>
6+
<style type="text/css">
7+
body {
8+
font-family: "Helvetica Neue", Helvetica, sans-serif;
9+
line-height: 1.4;
10+
}
11+
.container {
12+
margin: 40px auto;
13+
width: 300px;
14+
}
15+
h2 {
16+
text-align: center;
17+
}
18+
.mainnav {
19+
left: 50%;
20+
top: 100px;
21+
position: fixed;
22+
margin-left: -400px;
23+
width: 140px;
24+
}
25+
.hack-list {
26+
list-style-type: lower-alpha;
27+
}
28+
</style>
29+
30+
</head>
31+
<body>
32+
<div id="top" class="container">
33+
34+
<ul class="mainnav">
35+
<li><a href="#p1">p1</a></li>
36+
<li><a href="#p2">p2</a></li>
37+
<li><a href="#p3">p3</a></li>
38+
<li><a href="#p4">p4</a></li>
39+
<li><a href="#p5">p5</a></li>
40+
<li><a href="#top">back to top</a></li>
41+
</ul>
42+
43+
<h3>In Mobile Safari (iPad/iPhone):</h3>
44+
<ol>
45+
<li>Click one of the navigation links to the left. *Works*</li>
46+
<li>Click another. *Does NOT Work*</li>
47+
<li>Scroll the page a little manually by touching and dragging.</li>
48+
<li>Click one of the navigation links to the left. *Works*</li>
49+
<li>Click another. *Does NOT Work*</li>
50+
</ol>
51+
52+
53+
<h3>Stupid Hack Demo:</h3>
54+
<ol class="hack-list">
55+
<li><button type="button">Load stupid hack</button></li>
56+
<li>Repeat steps 1 and 2. They should both work.</li>
57+
<li>Groan when you see the hack.</li>
58+
</ol>
59+
60+
<pre>
61+
$(document).ready(function() {
62+
$('button').one('click', function() {
63+
64+
<strong>// Start stupid hack</strong>
65+
var $stupid = $('&lt;div&gt;&lt;/div&gt;')
66+
.height(1)
67+
.hide()
68+
.appendTo('body');
69+
70+
$('ul.mainnav').on('click', 'a', function() {
71+
$stupid.show();
72+
setTimeout(function() {
73+
$stupid.hide();
74+
}, 10);
75+
});
76+
<strong>// end stupid hack</strong>
77+
78+
});
79+
});
80+
81+
</pre>
82+
83+
<hr>
84+
85+
<p id="p1">p1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
86+
<p id="p2">p2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
87+
<p id="p3">p3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
88+
<p id="p4">p4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
89+
<p id="p5">p5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
90+
<p id="p6">p6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
91+
<p class="subnav"><a href="#p1">p1</a> <a href="#p2">p2</a> <a href="#p3">p3</a> <a href="#p4">p4</a></p>
92+
93+
</div>
94+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
95+
<script>!window.jQuery && document.write(unescape('%3Cscript src="../lib/jquery/jquery.js"%3E%3C/script%3E'));</script>
96+
97+
<script src="../src/jquery.smooth-scroll.js"></script>
98+
<script>
99+
$(document).ready(function() {
100+
$('button').one('click', function() {
101+
102+
// Start stupid hack
103+
var $stupid = $('<div></div>')
104+
.height(1)
105+
.hide()
106+
.appendTo('body');
107+
108+
$('ul.mainnav').on('click', 'a', function() {
109+
$stupid.show();
110+
setTimeout(function() {
111+
$stupid.hide();
112+
}, 10);
113+
});
114+
// end stupid hack
115+
116+
});
117+
});
118+
119+
</script>
120+
121+
</body>
122+
</html>

demo/fixed-nojs.html

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Smooth Scroll jQuery Plugin Demo</title>
6+
<style type="text/css">
7+
body {
8+
font-family: "Helvetica Neue", Helvetica, sans-serif;
9+
line-height: 1.4;
10+
}
11+
.container {
12+
margin: 40px auto;
13+
width: 200px;
14+
}
15+
h2 {
16+
text-align: center;
17+
}
18+
.mainnav {
19+
left: 50%;
20+
top: 100px;
21+
position: fixed;
22+
margin-left: -300px;
23+
width: 140px;
24+
}
25+
26+
</style>
27+
28+
</head>
29+
<body>
30+
<div id="top" class="container">
31+
32+
<ul class="mainnav">
33+
<li><a href="#p1">p1</a></li>
34+
<li><a href="#p2">p2</a></li>
35+
<li><a href="#p3">p3</a></li>
36+
<li><a href="#p4">p4</a></li>
37+
<li><a href="#p5">p5</a></li>
38+
<li><a href="#top">back to top</a></li>
39+
</ul>
40+
41+
<h3>In Mobile Safari (iPad/iPhone):</h3>
42+
<ol>
43+
<li>Click one of the navigation links to the left. *Works*</li>
44+
<li>Click another. *Does NOT Work*</li>
45+
<li>Scroll the page a little manually by touching and dragging.</li>
46+
<li>Click one of the navigation links to the left. *Works*</li>
47+
<li>Click another. *Does NOT Work*</li>
48+
</ol>
49+
50+
<h3>Questions:</h3>
51+
<ul>
52+
<li>What's up with that?</li>
53+
<li>Is this a known bug?</li>
54+
<li>Are there any workarounds?</li>
55+
<li>Am I doing something stupid?</li>
56+
</ul>
57+
58+
<hr>
59+
60+
<p id="p1">p1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
61+
<p id="p2">p2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
62+
<p id="p3">p3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
63+
<p id="p4">p4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
64+
<p id="p5">p5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
65+
<p id="p6">p6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
66+
<p class="subnav"><a href="#p1">p1</a> <a href="#p2">p2</a> <a href="#p3">p3</a> <a href="#p4">p4</a></p>
67+
68+
</div>
69+
70+
</body>
71+
</html>

0 commit comments

Comments
 (0)