Header Submenus

There seems to be a bug now when Fixed mode (always show the menu, even when scrolled down) is turned on.

I’m seeing this with Discourse 2.9.0.beta8, and also just reproduced it easily using the official Discourse theme preview site. I think I first noticed it about 2 weeks ago but I’m not entirely sure when it started happening.

To reproduce:

  • Turn on Fixed mode in the theme component’s settings.
  • Click on a thread with a lot of replies.
  • (If it’s the first time you’ve read the thread, and you’re at the very top, scroll down a few replies, go back to the thread list, then click the thread again, so you’re taken back to the post you were on.)

The amount of padding needed at the top of the page is miscalculated, resulting in the top of the post, and the name of the person who wrote it, being scrolled under the header and cut off.

You have to scroll up a bit every time you click on a thread, just to see whose post you’re reading.

You see this on entering the thread:

When you should see something like this:

What’s really strange is it does not always happen, and pushing Ctrl-F5 often fixes it. But it’ll happen again a little while later.

Editing the CSS to increase the amount of padding it adds to main-outlet sort-of fixes things, but then you get a lot of blank space at the top of topic lists. It seems like the topic lists and threads need different padding, or maybe one of them is adding the padding twice or some extra padding from somewhere else?

(Edit: Sometimes the page can’t scroll up far enough to see the problem. For example, when you go to the last post in a thread and it’s a short one, there’s no way for the header to overlap the poster’s name there, even if you scroll down as far as you can manually. That may account for some situations where things appear to work. Test with a browser window that isn’t very tall for the most reliable way to reproduce the bug.)

3 Likes

Is there any way to prevent this from showing on the login screen? I can do it with the following css, but this still presents the header submenu for a second, and then hides it.

.static-login .top-menu {
	display: none;
}
.static-login .d-header-wrap {
	display: none;
}

Is there a better way to prevent this from appearing during the static-login page?

1 Like

This and other themes will not work on the crawler view; the crawler view doesn’t load most of Discourse’s JavaScript.

2 Likes