mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Track scroll direction to reset index cache
This commit is contained in:
parent
680725ed3a
commit
32ffc58d12
File diff suppressed because one or more lines are too long
@ -31,7 +31,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block libs %}
|
{% block libs %}
|
||||||
<script src="{{ base_url }}/assets/javascripts/modernizr-0d3dc73294.js"></script>
|
<script src="{{ base_url }}/assets/javascripts/modernizr-facb31f4a3.js"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block fonts %}
|
{% block fonts %}
|
||||||
{% if config.extra.font != "none" %}
|
{% if config.extra.font != "none" %}
|
||||||
@ -124,7 +124,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script src="{{ base_url }}/assets/javascripts/application-16f434a21a.js"></script>
|
<script src="{{ base_url }}/assets/javascripts/application-eb5283d5b7.js"></script>
|
||||||
<script>var config={url:{base:"{{ base_url }}"}},app=new Application(config);app.initialize()</script>
|
<script>var config={url:{base:"{{ base_url }}"}},app=new Application(config);app.initialize()</script>
|
||||||
{% for path in extra_javascript %}
|
{% for path in extra_javascript %}
|
||||||
<script src="{{ path }}"></script>
|
<script src="{{ path }}"></script>
|
||||||
|
@ -41,6 +41,9 @@ export default class Blur {
|
|||||||
this.index_ = 0
|
this.index_ = 0
|
||||||
this.offset_ = window.pageYOffset
|
this.offset_ = window.pageYOffset
|
||||||
|
|
||||||
|
/* Necessary state to correctly reset the index */
|
||||||
|
this.dir_ = 0
|
||||||
|
|
||||||
/* Index anchor node offsets for fast lookup */
|
/* Index anchor node offsets for fast lookup */
|
||||||
this.anchors_ = [].map.call(this.els_, el => {
|
this.anchors_ = [].map.call(this.els_, el => {
|
||||||
return document.getElementById(el.hash.substring(1))
|
return document.getElementById(el.hash.substring(1))
|
||||||
@ -62,6 +65,14 @@ export default class Blur {
|
|||||||
*/
|
*/
|
||||||
update() {
|
update() {
|
||||||
const offset = window.pageYOffset
|
const offset = window.pageYOffset
|
||||||
|
const dir = Math.sign(this.offset_ - offset)
|
||||||
|
|
||||||
|
/* Hack: reset index if direction changed, to catch very fast scrolling,
|
||||||
|
because otherwise we would have to register a timer and that sucks */
|
||||||
|
if (this.dir_ !== dir)
|
||||||
|
this.index_ = dir < 0
|
||||||
|
? this.index_ = 0
|
||||||
|
: this.index_ = this.els_.length - 1
|
||||||
|
|
||||||
/* Exit when there are no anchors */
|
/* Exit when there are no anchors */
|
||||||
if (this.anchors_.length === 0)
|
if (this.anchors_.length === 0)
|
||||||
@ -92,8 +103,9 @@ export default class Blur {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remember current offset for next iteration */
|
/* Remember current offset and direction for next iteration */
|
||||||
this.offset_ = offset
|
this.offset_ = offset
|
||||||
|
this.dir_ = dir
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user