Kill sticky headers (2013)
alisdair.mcdiarmid.org
alisdair.mcdiarmid.org
That's a 60px sticky header + a 50px sticky footer on a 480px-tall screen. 23% of my screen space is lost to sticky elements. The footer is only two buttons, "Share" and "Tweet".
Every time you scroll down, the header slides up, and then back down again. It's an incredibly distracting experience.
The icing on the cake is the ad in the middle of the article, it's in an iframe that hijacks your scrolling, until you swipe through all 5 slides you cannot continue scrolling through the article.
Why would I ever subject myself to consuming content this way?!
A small set of sites fail to render, including Google's Blogspot, using dynamic themes, which are abominations to the Web. No "fix this site's fucked CSS / styling" tools seem to be able to handle that.
Most times when I try to browse pages on a family members phone I want to throw it... Guess I really don't know how bad things are most of the time.
I'm usually just bitching about the sites that are sniffing for webkit UA's and therefore don't show me a mobile experience.
With most of them if you need to backtrack and read a few lines up, you have to scroll well past the point or the exact text you want to read gets covered by the header.
edit: iBooks on mac os doesn't have a continuous option.
My theory is that analytics is to blame for all of this. You can track how many people clicked the button in your share header. You can't reliably track how many people left because of it (there could be a million reasons for leaving the page).
So your analytics shows an uptick in engagement by X%, and no clearly discernable downtick. So the header stays.
All it would need is an A/B test or two, but easier said than done...
Sticky headers make pgup/pgdn worse by make the visible size of the page smaller than the window size, so you lose a line or two and have to rewind. The ones that reappear when you scroll up are even worse.
Even worse, when you click to an anchor section on a sticky-header page, the title of the section is hidden by the sticky header.
Take me back to the static web.
Now that both position: sticky and Scroll Snap Points from CSS are landing in browsers, those complaints will hopefully be resolved. Scrolling is much better off left in the hands of CSS than JS.
I've taken to using alternative links (archive.is, archive.org, outline.com) for sharing the articles simply because it's too much of a PITA to manage the NYTimes.com page itself.
This, especially. If the browser were somehow informed about the header in a semantic way, it could avoid this.
Better if the browser knew about the header and could position the linked anchor accordingly. In the absence of any facility to do that, just ditch the header.
* {margin:2em}I used to enjoy doing Web 1.0 development.
Nowadays I always push for native applications, unless the customer wants otherwise.
Browsers should have stayed pure HTML/CSS.
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: goldenrod;
}"^top" links, share icons, all that stuff - clients will not give up until they get it all.
(Source: Designed sites for clients since there were first images in web browsers 20+ years ago.)
Quite a shame because even though I've found other apps that do a good job, I still miss Alien Blue.
Anyone know why they'd do this?
Reddit's mobile website is also by far the worst website I've ever seen, bar none, for reactivity. Pressing the back button regularly takes 30 seconds to do anything, during which you get no status bar. If you mistake that lack of reaction for it not processing your request and hit back a second time, it'll go back two pages once the 30 seconds are up. Trying to go forward takes another 30 seconds. Opening multiple tabs does not work, they wait until you look at them, and /then/ start loading.
I have come to the conclusion that they have deliberately crippled their own mobile site to try to force people into the app.
If any of you are interested, I have been maintaining a filterlist that works for uBlock origin that attempts to pin (so they won't move when you scroll down) these sticky headers to the top and remove additional screen real estate hijacking web elements.
It may be a losing battle but I update the list almost daily with all new instances of this web plague that I come across. It also works on Firefox Mobile for Android if you have uBlock Origin installed there.
If you'd like to subscribe, enter the following link[1] into your 3rd party filters menu within uBlock Origin - just paste it into the 'Custom' URL entry at the bottom of the '3rd party filters' menu option.
The project homepage is at: https://github.com/yourduskquibbles/webannoyances
Cheers!
[1] https://raw.githubusercontent.com/yourduskquibbles/webannoya...
That will do quite a lot more than remove sticky headers.
Agreed. Those sticky headers almost always wind up on sites like blogs and text articles where they have no place and just reduce usability.
I think his one may be better. Mine toggles using jquery.
With a 15" laptop screen the medium.com "Never miss a story from ..., when you sign up for Medium."-bar takes up like 10% of vertical space.
What am I missing?
https://support.mozilla.org/en-US/kb/bookmarklets-perform-co...
When you properly install it, instead of the link, there should be an executable code in the bookmark (if it starts with http: or something, it isn't). To activate the code, first you visit the page on which you want the code to work, then you click at the bookmarklet.
I have too bookmarklets very similar. Makes for a nice tree recursion thinking exercise at first.
ps: yes sticky is subtle and nowadays it's often wasting space.
I find that they don't, because I don't have a bookmarks bar I can add the bookmarklet to.
It does, however, work within the demo page itself.
Edit (no affiliation): Safari Snippets by ydangle https://appsto.re/us/biIhdb.i
Maybe that's the problem? I use 27+ inches monitors at home and office, and never had any issues with sticky headers.
Leave them alone! :)
Not only does that not address the issue in the slightest, but that's very much like saying if you don't like the banner ads run across the bottoms of t.v. shows you should buy a bigger t.v. so it feels smaller.
Don't visit websites you don't like. That's the only way.
Not to mention sound.
You click it when there's a sticky header. If it takes 200ms to run, that's not a problem.
If it were a browser extension running on every page, sure, that's a disaster.
I personally don't like them either, but I also know how to scroll. I've seen instances on long pages where there are audiences who have a hard time navigating through a lot of content without a constant point of reference.
1. There's position: sticky; recently added to CSS: https://drafts.csswg.org/css-position/#sticky-pos
2. Position: sticky; is gaining browser support fast: http://caniuse.com/#feat=css-sticky
So what I draw from that are the following insights:
3. The author of the bookmarklet should update the code to also check for elements now using position: sticky;
4. Sticky elements haven't peaked on the web, the deluge is _about_ to begin actually. Brace yourselves…
(4) The websites that wanted to have a sticky header would have done it already with one of the several available current methods. The appearance of an easier way to do it with a single CSS rule is not gonna increase their number drastically.
(function () { var i, elements = document.querySelectorAll('body *');
for (i = 0; i < elements.length; i++) {
if (getComputedStyle(elements[i]).position === 'fixed') {
elements[i].parentNode.removeChild(elements[i]);
}
// 2017 update:
if (getComputedStyle(elements[i]).position === 'sticky') {
elements[i].parentNode.removeChild(elements[i]);
}
}
})(); ...
for (i = 0; i < elements.length; i++) {
if (getComputedStyle(elements[i]).position === 'fixed' ||
getComputedStyle(elements[i]).position === 'sticky') {
elements[i].parentNode.removeChild(elements[i]);
}
} ...
There are probably more clever ways to go, but this will do the trick. BTW haven't found many sites using "sticky", but good to be ready just in case.