|
| 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 = $('<div></div>') |
| 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> |
0 commit comments