mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Fixed sidebar jitter by switching to sticky positioning
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
material/assets/javascripts/bundle.37a8e348.min.js
vendored
Normal file
2
material/assets/javascripts/bundle.37a8e348.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
material/assets/javascripts/bundle.37a8e348.min.js.map
Normal file
1
material/assets/javascripts/bundle.37a8e348.min.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"assets/javascripts/bundle.js": "assets/javascripts/bundle.0f38e514.min.js",
|
"assets/javascripts/bundle.js": "assets/javascripts/bundle.37a8e348.min.js",
|
||||||
"assets/javascripts/bundle.js.map": "assets/javascripts/bundle.0f38e514.min.js.map",
|
"assets/javascripts/bundle.js.map": "assets/javascripts/bundle.37a8e348.min.js.map",
|
||||||
"assets/javascripts/vendor.js": "assets/javascripts/vendor.d7126665.min.js",
|
"assets/javascripts/vendor.js": "assets/javascripts/vendor.d1e549c9.min.js",
|
||||||
"assets/javascripts/vendor.js.map": "assets/javascripts/vendor.d7126665.min.js.map",
|
"assets/javascripts/vendor.js.map": "assets/javascripts/vendor.d1e549c9.min.js.map",
|
||||||
"assets/javascripts/worker/search.js": "assets/javascripts/worker/search.58d22e8e.min.js",
|
"assets/javascripts/worker/search.js": "assets/javascripts/worker/search.58d22e8e.min.js",
|
||||||
"assets/javascripts/worker/search.js.map": "assets/javascripts/worker/search.58d22e8e.min.js.map",
|
"assets/javascripts/worker/search.js.map": "assets/javascripts/worker/search.58d22e8e.min.js.map",
|
||||||
"assets/stylesheets/main.css": "assets/stylesheets/main.97f5b1b6.min.css",
|
"assets/stylesheets/main.css": "assets/stylesheets/main.91a7bba4.min.css",
|
||||||
"assets/stylesheets/main.css.map": "assets/stylesheets/main.97f5b1b6.min.css.map",
|
"assets/stylesheets/main.css.map": "assets/stylesheets/main.91a7bba4.min.css.map",
|
||||||
"assets/stylesheets/palette.css": "assets/stylesheets/palette.a4b61a0c.min.css",
|
"assets/stylesheets/palette.css": "assets/stylesheets/palette.a4b61a0c.min.css",
|
||||||
"assets/stylesheets/palette.css.map": "assets/stylesheets/palette.a4b61a0c.min.css.map"
|
"assets/stylesheets/palette.css.map": "assets/stylesheets/palette.a4b61a0c.min.css.map"
|
||||||
}
|
}
|
||||||
3
material/assets/stylesheets/main.91a7bba4.min.css
vendored
Normal file
3
material/assets/stylesheets/main.91a7bba4.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
material/assets/stylesheets/main.91a7bba4.min.css.map
Normal file
1
material/assets/stylesheets/main.91a7bba4.min.css.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block styles %}
|
{% block styles %}
|
||||||
<link rel="stylesheet" href="{{ 'assets/stylesheets/main.97f5b1b6.min.css' | url }}">
|
<link rel="stylesheet" href="{{ 'assets/stylesheets/main.91a7bba4.min.css' | url }}">
|
||||||
{% if palette.primary or palette.accent %}
|
{% if palette.primary or palette.accent %}
|
||||||
<link rel="stylesheet" href="{{ 'assets/stylesheets/palette.a4b61a0c.min.css' | url }}">
|
<link rel="stylesheet" href="{{ 'assets/stylesheets/palette.a4b61a0c.min.css' | url }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -178,8 +178,8 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script src="{{ 'assets/javascripts/vendor.d7126665.min.js' | url }}"></script>
|
<script src="{{ 'assets/javascripts/vendor.d1e549c9.min.js' | url }}"></script>
|
||||||
<script src="{{ 'assets/javascripts/bundle.0f38e514.min.js' | url }}"></script>
|
<script src="{{ 'assets/javascripts/bundle.37a8e348.min.js' | url }}"></script>
|
||||||
{%- set translations = {} -%}
|
{%- set translations = {} -%}
|
||||||
{%- for key in [
|
{%- for key in [
|
||||||
"clipboard.copy",
|
"clipboard.copy",
|
||||||
|
|||||||
@@ -43,10 +43,8 @@ import { Main } from "../../../main"
|
|||||||
import { Sidebar } from "../_"
|
import { Sidebar } from "../_"
|
||||||
import {
|
import {
|
||||||
resetSidebarHeight,
|
resetSidebarHeight,
|
||||||
resetSidebarLock,
|
|
||||||
resetSidebarOffset,
|
resetSidebarOffset,
|
||||||
setSidebarHeight,
|
setSidebarHeight,
|
||||||
setSidebarLock,
|
|
||||||
setSidebarOffset
|
setSidebarOffset
|
||||||
} from "../set"
|
} from "../set"
|
||||||
|
|
||||||
@@ -131,7 +129,6 @@ export function applySidebar(
|
|||||||
withLatestFrom(header$),
|
withLatestFrom(header$),
|
||||||
tap(([{ height, lock }, { height: offset }]) => {
|
tap(([{ height, lock }, { height: offset }]) => {
|
||||||
setSidebarHeight(el, height)
|
setSidebarHeight(el, height)
|
||||||
setSidebarLock(el, lock)
|
|
||||||
|
|
||||||
/* Set offset in locked state depending on header height */
|
/* Set offset in locked state depending on header height */
|
||||||
if (lock)
|
if (lock)
|
||||||
@@ -147,7 +144,6 @@ export function applySidebar(
|
|||||||
finalize(() => {
|
finalize(() => {
|
||||||
resetSidebarOffset(el)
|
resetSidebarOffset(el)
|
||||||
resetSidebarHeight(el)
|
resetSidebarHeight(el)
|
||||||
resetSidebarLock(el)
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,28 +71,3 @@ export function resetSidebarHeight(
|
|||||||
): void {
|
): void {
|
||||||
el.style.height = ""
|
el.style.height = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set sidebar lock
|
|
||||||
*
|
|
||||||
* @param el - Sidebar element
|
|
||||||
* @param value - Whether the sidebar is locked
|
|
||||||
*/
|
|
||||||
export function setSidebarLock(
|
|
||||||
el: HTMLElement, value: boolean
|
|
||||||
): void {
|
|
||||||
el.setAttribute("data-md-state", value ? "lock" : "")
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset sidebar lock
|
|
||||||
*
|
|
||||||
* @param el - Sidebar element
|
|
||||||
*/
|
|
||||||
export function resetSidebarLock(
|
|
||||||
el: HTMLElement
|
|
||||||
): void {
|
|
||||||
el.removeAttribute("data-md-state")
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ hr {
|
|||||||
|
|
||||||
// Increase top spacing of content area to give typography more room
|
// Increase top spacing of content area to give typography more room
|
||||||
&__inner {
|
&__inner {
|
||||||
|
display: flex;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin-top: px2rem(24px + 6px);
|
margin-top: px2rem(24px + 6px);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,27 +26,7 @@
|
|||||||
|
|
||||||
// Content container
|
// Content container
|
||||||
.md-content {
|
.md-content {
|
||||||
|
flex: 1;
|
||||||
// [tablet landscape +]: Add space for table of contents
|
|
||||||
@include break-from-device(tablet landscape) {
|
|
||||||
margin-right: px2rem(242px);
|
|
||||||
|
|
||||||
// Adjust for right-to-left languages
|
|
||||||
[dir="rtl"] & {
|
|
||||||
margin-right: initial;
|
|
||||||
margin-left: px2rem(242px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// [screen +]: Add space for table of contents
|
|
||||||
@include break-from-device(screen) {
|
|
||||||
margin-left: px2rem(242px);
|
|
||||||
|
|
||||||
// Adjust for right-to-left languages
|
|
||||||
[dir="rtl"] & {
|
|
||||||
margin-right: px2rem(242px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define spacing
|
// Define spacing
|
||||||
&__inner {
|
&__inner {
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ $md-toggle__drawer--checked:
|
|||||||
|
|
||||||
// Sidebar container
|
// Sidebar container
|
||||||
.md-sidebar {
|
.md-sidebar {
|
||||||
position: absolute;
|
position: sticky;
|
||||||
|
top: px2rem(48px);
|
||||||
width: px2rem(242px);
|
width: px2rem(242px);
|
||||||
padding: px2rem(24px) 0;
|
padding: px2rem(24px) 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -44,12 +45,6 @@ $md-toggle__drawer--checked:
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lock sidebar to container height (account for fixed header)
|
|
||||||
&[data-md-state="lock"] {
|
|
||||||
position: fixed;
|
|
||||||
top: px2rem(48px);
|
|
||||||
}
|
|
||||||
|
|
||||||
// [tablet -]: Convert navigation to drawer
|
// [tablet -]: Convert navigation to drawer
|
||||||
@include break-to-device(tablet) {
|
@include break-to-device(tablet) {
|
||||||
|
|
||||||
@@ -95,34 +90,17 @@ $md-toggle__drawer--checked:
|
|||||||
// Secondary sidebar with table of contents
|
// Secondary sidebar with table of contents
|
||||||
&--secondary {
|
&--secondary {
|
||||||
display: none;
|
display: none;
|
||||||
|
order: 2;
|
||||||
|
|
||||||
// [tablet landscape +]: Show table of contents next to body copy
|
// [tablet landscape +]: Show table of contents next to body copy
|
||||||
@include break-from-device(tablet landscape) {
|
@include break-from-device(tablet landscape) {
|
||||||
display: block;
|
display: block;
|
||||||
margin-left: calc(100% - #{px2rem(242px)});
|
|
||||||
|
|
||||||
// Adjust for right-to-left languages
|
|
||||||
[dir="rtl"] & {
|
|
||||||
margin-right: calc(100% - #{px2rem(242px)});
|
|
||||||
margin-left: initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure smooth scrolling on iOS
|
// Ensure smooth scrolling on iOS
|
||||||
.md-sidebar__scrollwrap {
|
.md-sidebar__scrollwrap {
|
||||||
touch-action: pan-y;
|
touch-action: pan-y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// [screen +]: Limit to grid
|
|
||||||
@include break-from-device(screen) {
|
|
||||||
margin-left: px2rem((1220 - 242) * 1px);
|
|
||||||
|
|
||||||
// Adjust for right-to-left languages
|
|
||||||
[dir="rtl"] & {
|
|
||||||
margin-right: px2rem((1220 - 242) * 1px);
|
|
||||||
margin-left: initial;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wrapper for scrolling on overflow
|
// Wrapper for scrolling on overflow
|
||||||
|
|||||||
Reference in New Issue
Block a user