I have a site with a fixed header and slide-out sidebars. With iOS7 in portrait orientation, the fixed header stays fixed when the sidebar is visible, but on iOS8 the header pushes slightly upward depending on how far down you are scrolled. I need it to stay fixed.
See this jsbin: http://jsbin.com/xuyevi/2/
The main pieces are a header, a sidebar, and the main content. The header is fixed to the top of the screen using fixed position and has a z-index that keeps it above the content when you are scrolling.
The sidebar is fixed to the left side of the screen, and is initially hidden by being translated left by its own width.
To open the sidebar, each of the header, content, and sidebars are translated to the right by the width of the sidebar.
Again, this works perfectly on iOS7 and all other browsers that support translate3d, and it even works correctly in iOS8 when in landscape orientation. But in iOS8 in portrait, the fixed header will slide off the screen based on how far down the user is scrolled.
Further, using the Safari inspector shows that the menu items on screen are offset from their expected positions. I.e. selecting an element in the inspector highlights an area on the screen that is offset from the actual location where it's rendered.
Has anyone else run into this? Anyone know a fix?
EDIT: The inspector thinks that the fixed position header is exactly where it should be, even though it's actually getting pushed off screen.
A little late to the party, but adding
html, body {
overflow-x: hidden;
overflow-y: scroll;
}
Will fix the offset scrolling on fixed elements that are offset (eg. left:20px) in iOS 8.
I had a similar issue on iOS using multiple fixed position elements and a CSS animated off-canvas nav. On a long page the upward "drift" was a blocker because it eventually increased to the point where it hid the nav trigger, making it impossible to close the menu. I tried extensively to find a fix and settled on a workaround: scroll back to top before animating. (#ocnTrigger is my off-canvas menu trigger.)
$('#ocnTrigger').click(function(){
$('body').animate({
scrollTop: 0
}, 0);
});
I was trying to do something similar (see here and here) then found that Apple has published a technical note recommending that fixed positioning be avoided. I swear it worked fine in iOS 7, but now with iOS8 it no longer "sticks".
This problem seems closely related to setting this meta tag:
<meta name="viewport" content="width=device-width">
See also: Fix div to bottom without using css position
Related
I am using TableView in my app. But as I zoom to highest available screen resolution. There I found two horizontal scrollbars. One vertical scrollbar is from the table view. I think next one is from the Default from iOS. I need to disable another except table view. Can I do this?
As i keep on Scrolling i can find two scroll Bars.I need to disable this ScrollBar since this is not of UIScroll View.
Its just the simulator window scroll bar. You will not see it on the device. Second scroll bar indicates scrolling for the simulator window and it appears only when the simulator window extends beyond the mac screen.
I'm trying to use the Google Sign-In button in a fullscreen Angular Material layout (based on https://github.com/angular/material-start), but as soon as it renders, the page layout grows just slightly taller than full screen. For example you can scroll down just a little bit past the supposedly full-height side navigation and see its drop shadow.
What is the button doing to my layout, and how do I fix fullscreen layout while using the button?
This can be fixed by adding a style to the embedding page, to display: none the iframe, which is otherwise a 1-pixel affair shoved offscreen to the side. In my testing it still does its job when completely hidden.
I've almost pulled out all my hairs and I can't seem to find a solution. After searching and watching dozens of tutorials I'm asking here.
I have an iOS universal project in which I have only 1 webview. The whole project is set to landscape. Unfortunately it seems I cannot get this webview run in fullscreen. Whenever I have it running on my iPhone 5 the webview is only visible partially on my phone. The view is a square and centered horizontally and vertically. In landscape mode it reaches top to bottom but on the left and right side I have empty room the view did not reach.
Anyway I think it has something to do with the new storyboard feature stuff in xcode 6, but somehow I don't seem to be able to the make it working as I intend.
As said in the beginning I watched several tutorials but none of em where with only a fullscreen webview. If anyone can give me a push in the right direction I'd be glad.
Thanks in advance.
Edit:
I've added a screenshot of my project:
Hold down 'Ctrl' on keyboard.
Click and hold down click the 'Web View' item in the 'view controller scene' content list on left.
Drag the 'Web View' item up to the 'View' item in the 'view controller scene' content list on left. ( You will see blue line to link the items )
A pop up menu will appear as to how you wish the two items to interact.
There you can select, 'Equals Width', and 'Equals Height'.
Reset all the constraints of the UIWebView and then add the following four constraints:
Trailing space to superview -16
Leading space to superview - 16
Top space to container/superview - 0
Bottom space to container/superview - 0
This will make the UIWebView fullscreen and centered to the UIView.
I finally was able to found a solution to my problem. Thanks for everybody who tried to help me - it seems I was unable to properly describe my problem.
The solution to my problem was found here:
Black bars showing when running app on iOS 7 (4 inch retina display)
We have an app that is a fixed width and height and does not allow the user to scroll. As part of this app we have a navbar that is fixed to the screen under the status area. This all works great.
The problem is that when a keyboard is shown, it shifts our app window up to make room for the keyboard. At this point its possible to scroll our app and the titlebar which should be fixed to the top is no longer on screen.
Ideally the keyboard would still show, but our app window would resize so its not as tall, but items fixed to the top are still fixed to the top. also, you should not be able to scroll the window at this point.
So as Sani mentioned in a comment the Iconic keyboard plugin does in fact do what I'm looking for:
https://github.com/driftyco/ionic-plugins-keyboard
using:
cordova.plugins.Keyboard.disableScroll(true);
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
I am hoping one of you CSS gurus can help me pinpoint why my code isn't working! Here's my site:
http://ledvideowall.net
When the browser window is > 600 pixels, the "CALL US" menu item is floating right and vertically centered in the menu bar. (on FireFox and Chrome)
But, when the browser < 600 pixels, the menu item no longer floats right. And, on Chrome and iOS devices, the menu item is placed vertically below the menu bar. (very difficult to see!)
Any ideas?
add width:100% to .nav-menu in css file.
Well I am not getting this issue. However,
You should not be including that in the same ul. Instead, you should make a separate div and float that to the right (float:right;), and put the actual menu separately floated to the left (float:left;).
p.s. DO NOT add width: 100% to .nav-menu. This only resolves a symptom not the main problem.