We've implemented fancybox iframe popups throughout our system and it works great, but I've noticed these annoying horizontal scrollbars popping out on the outside of the frame. We get scrollbars where necesary inside our content area, but these ones just show up 100% of the time even when there's nothing to scroll. I've tried a number of things with CSS but have not had any luck thus far. Screenshot below to show what I'm referring to.
Any ideas?
https://ibb.co/88ZhBbX
EDIT: https://ibb.co/82bPxkd - image showing overflow being set to hidden on iframe and wrapper container.
Related
In my app I am displaying website using the WKWebView component but since the website has <iframe> content, scrolling does not work. The iframe content itself registers taps and swipes but it never scrolls.
When I open the same page with Safari it works well, I can interact with iframe's content and scroll without any issues.
My iframe takes full width and height of the webpage and I added this property:
-webkit-overflow-scrolling: touch;
But it does not help. Unfortunately I cannot show the webpage in question because it contains proprietary data and is behing login screen.
I would prefer to solve this without having to modify the webpage, since Safari works fine.
EDIT: It looks like the iframe might be detecting the events and not "forwarding" them, because when there is also for example navbar on the page (that is not part of the iframe) I can swipe it and scroll. However since there is very little space on the screen, I would prefer not to have any other elements apart from iframe itself.
EDIT 2: I tried to display the page from iframe directly in the WKWebView but it still does not scroll at all. Works great in Safari.
Solution: In the end I solved the issue by changing the userAgent property of the WKWebView to match either iOS 12 Safari for iPhone or iPad depending on the device. The website in question is fairly complex regarding user interaction so I guess they were sending "incorrect" settings to the browser with the default user agent.
I would look for scroll-blocking event listeners that might conditionally load. If you have some kind of touch, touchmove, click, hover javascript events they might interfere with the default logic by using e.preventDefault().
Also you need to look for such events both in framed page and host page.
Try to replace a host page and framed page to see if scroll works well with different URLs.
Try placing the iframe in a div with -webkit-overflow-scrolling which takes up the full view and make the iframe the the size of it's content.
Example from: https://coderwall.com/p/c-aqqw/scrollable-iframe-on-mobile-safari
<div style="overflow:auto;-webkit-overflow-scrolling:touch">
<iframe src="./yxz" style="width:100%;height:100%">
</div>
You may have to get creative with resizing the iframe to match it's content (see: Adjust width and height of iframe to fit with content in it)
I've noticed on Ubuntu and OSX (when an external mouse is used) that there is a settings to always show scrollbars on a page. When they are showing like this it makes our site look awful as the scrollbars do not agree with our colour scheme and they take up valuable space. The default setting on OSX of hiding scrollbars until you scroll works very well for us.
Is there any way we can disable or improve upon this in the browser?
This is an OS-level setting that applies to every scrollable content window, not just web browsers.
Is there any way we can disable or improve upon this in the browser?
I don't think so. If you're seeing scrollbars on elements inside your page (not just on the right side of window) then you may want to adjust your overflow/layout CSS on those elements.
I have the content of my website in an absolute positioned div that fills the whole screen. The scrolling on this div is normally clunky, as it's not the native momentum scrolling. Solution? Append -webkit-overflow-scrolling: touch; to the div.
Momentum scrolling works now, but when I scroll down the page, the div elements aren't showing up. The console shows no errors, nothing is wrong with the actual page, but the individual posts (the div's) don't show. Here's an example:
Can anyone confirm this on their iPad, or suggest a fix? I'd rather not use something along the lines of Scrollability. It might be that the iOS6 beta is causing this, but I'd like to be reassured.
You can view this site on your iPad
And if anyone wants me to explain my bookmarks, I will gladly do so.
Currently .post CSS class uses position: relative. If you remove that line, the issue goes away. Apparently relatively position elements are hidden when not within the view. Not exactly sure the why the iPad does this or if it is a bug. In my experience, iPad devices try to run as efficiently as possible. For example, if you scroll JS animations are frozen. Perhaps this is a technique to make iPads render pages more efficiently. Hopefully that helps.
This article maybe be related and have a work around: CSS3 property webkit-overflow-scrolling:touch ERROR
Using '-webkit-overflow-scrolling: touch' hides content while scrolling/dragging
Unable to scroll pages vertically on Google Chrome "12.0.742.100", using the scroll-bar thumb, however I can use mouse scroll and also scroll the page using the up and down arrow keys.
Important points:
If I re-size the window such that there is a horizontal scroll-bar, the vertical scroll-bar starts to works fine, but if I re-size/there is no horizontal scroll-bar, the vertical scroll-bar thumb fails to work.
If I stop loading the page/try to scroll while the page is loading, it works fine.
The issue is reproducible on almost all the pages of my client's website "http://www.charlotterusse.com/", like:
http://www.charlotterusse.com/home/index.jsp
http://www.charlotterusse.com/category/index.jsp?categoryId=4078197
http://www.charlotterusse.com/family/index.jsp?categoryId=4335463&cp=4078197
http://www.charlotterusse.com/category/index.jsp?categoryId=4238904
http://www.charlotterusse.com/category/index.jsp?categoryId=4238909&cp=4238904
but, the following pages scroll just fine:
http://www.charlotterusse.com/sitemap/index.jsp
https://www.charlotterusse.com/checkout/index.jsp?process=login
http://www.charlotterusse.com/helpdesk/index.jsp
http://www.charlotterusse.com/storeLocator/index.jsp
http://www.charlotterusse.com/giftCenter/index.jsp
It may be due to some conflict with Flash or JavaScript, but the site works fine on all other browsers and not chrome.
Please advice what could the issue be and how can it be fixed.
Ultimately found the solution for this issue. There was a JS code which was hindering the normal mousedrag actions.
I have content in an iframe, and when I scroll the main page (outside of the iframe), I get weird artifacts inside of the iframe, from the select and flash controls, in IE6.
How it should look (and does look in IE6 before scrolling the outer page):
How it looks after scrolling the outer page in IE6:
It works fine in other browsers, including IE7+. If I load the content within the iframe directly, and scroll the page, it doesn't happen. It only happens when it's embedded in the iframe.
It seems as though certain controls within the iframe are scrolling with the outer page.
Thanks!
Your best bet may be to hide the iframe during the scroll event, or reflow the iframe after that event by resizing its width 1px smaller and then back to its original size. A reflow of the iframe should cause a redraw. You probably won't be able to make IE6 play 100% nice with iframe scrolling, etc.