Heim > Web-Frontend > H5-Tutorial > Hauptteil

Detaillierte Erläuterung der Verwendung von scrollIntoView in h5

零下一度
Freigeben: 2017-06-25 10:03:23
Original
5897 Leute haben es durchsucht

Wenn die Seite gescrollt wird, ist dies ebenfalls ein Problem, das DOM nicht löst. Um dieses Problem zu lösen, haben Browser eine Methode implementiert, mit der Entwickler das Scrollen der Seite besser steuern können. Unter verschiedenen proprietären Methoden hat HTML5 scrollIntoView() als Standardmethode ausgewählt. scrollIntoView() kann für alle HTML-Elemente aufgerufen werden. Durch Scrollen im Browserfenster oder einem Containerelement kann das aufrufende Element im Fenster erscheinen. Wenn „true“ als Parameter an diese Methode übergeben wird oder keine Parameter übergeben werden, ist die Oberkante des angepassten Elements nach dem Scrollen des Fensters so bündig wie möglich mit der Oberkante des Fensters. Wenn false als Parameter übergeben wird, wird das aufrufende Element so vollständig wie möglich im Ansichtsfenster angezeigt (wenn möglich, ist die Unterseite des aufrufenden Elements bündig mit der Oberseite des Ansichtsfensters). Die Oberseite ist jedoch nicht unbedingt bündig .

1.scrollIntoView

html

<div><h2>scrollIntoView</h2><button id="roll1">scrollIntoView(false)</button><button id="roll2">scrollIntoView(true)</button><div><div id="myDiv"></div><div id="roll_top">scrollIntoView(ture)元素上边框与视窗顶部齐平<span id="bottom">scrollIntoView(false)元素下边框与视窗底部齐平</span></div></div></div>
Nach dem Login kopieren

css

       #myDiv {height: 900px;background-color: gray;

        }#roll_top {height: 900px;background-color: green;color: #FFF;font-size: 50px;position: relative;
        }#bottom {position: absolute;display: block;left: 0;bottom: 0;
        }
Nach dem Login kopieren

js

  window.onload = function () {
        document.querySelector("#roll1").onclick = function () {
            document.querySelector("#roll_top").scrollIntoView(false);
        };
        document.querySelector("#roll2").onclick = function () {
            document.querySelector("#roll_top").scrollIntoView(true);
        };
    }
Nach dem Login kopieren

2. Scroll-Überwachung

html

<div><h2>scroll</h2><div id="nav"><div class="f1">floor1</div><div class="f2">floor2</div><div class="f3">floor3</div><div class="f4">floor4</div><div class="f5">floor5</div></div><p>页面结构</p><div class="main"><div id="f1">测试1</div><div id="f2">测试2</div><div id="f3">测试3</div><div id="f4">测试4</div><div id="f5">测试5</div></div></div>
Nach dem Login kopieren

css

      .main div {height: 1000px;width: 300px;margin: 20px;background-color: #C0C0C0;
        }#nav {position: fixed;width: 100px;height: 200px;top: 40%;right: 10px;
        }#nav div {cursor: pointer;text-align: center;

        }
Nach dem Login kopieren

js

    $(function () {
        $(window).scroll(function () {//为页面添加页面滚动监听事件var wst = $(window).scrollTop(); //滚动条距离顶端值for (var i = 1; i < 6; i++) {             //加循环if ($("#f" + i).offset().top <= wst + 10) { //判断滚动条位置$(&#39;#nav div&#39;).css("background-color", "white");
                    $(".f" + i).css("background-color", "red");
                }
            }
        });
        $(&#39;#nav div&#39;).click(function () {
            $(&#39;html,body&#39;).animate({scrollTop: $("#" + this.className).offset().top}, 500);//          $("#" + this.className)[0].scrollIntoView(true);//h5 scrollIntoView()});
    });
Nach dem Login kopieren

Alle Codes

h5之scrollIntoView控制页面元素滚动<div><h2>scrollIntoView</h2><button id="roll1">scrollIntoView(false)</button><button id="roll2">scrollIntoView(true)</button><div><div id="myDiv"></div><div id="roll_top">scrollIntoView(ture)元素上边框与视窗顶部齐平<span id="bottom">scrollIntoView(false)元素下边框与视窗底部齐平</span></div></div></div><div><h2>scroll</h2><div id="nav"><div class="f1">floor1</div><div class="f2">floor2</div><div class="f3">floor3</div><div class="f4">floor4</div><div class="f5">floor5</div></div><p>页面结构</p><div class="main"><div id="f1">测试1</div><div id="f2">测试2</div><div id="f3">测试3</div><div id="f4">测试4</div><div id="f5">测试5</div></div></div><script>window.onload = function () {/* 如果滚动页面也是DOM没有解决的一个问题。为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动。
         在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法。scrollIntoView()可以在所有的HTML元素上调用,
         通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中。如果给该方法传入true作为参数,或者不传入任何参数,
         那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平。如果传入false作为参数,调用元素会尽可能全部出现在视口中(可能的话,调用元素的底部会与视口的顶部齐平。)不过顶部不一定齐平.         */document.querySelector("#roll1").onclick = function () {
            document.querySelector("#roll_top").scrollIntoView(false);
        };
        document.querySelector("#roll2").onclick = function () {
            document.querySelector("#roll_top").scrollIntoView(true);
        };
    }</script><script>$(function () {
        $(window).scroll(function () {//为页面添加页面滚动监听事件var wst = $(window).scrollTop(); //滚动条距离顶端值for (var i = 1; i < 6; i++) {             //加循环if ($("#f" + i).offset().top <= wst + 10) { //判断滚动条位置                    $('#nav div').css("background-color", "white");
                    $(".f" + i).css("background-color", "red");
                }
            }
        });
        $('#nav div').click(function () {
            $('html,body').animate({scrollTop: $("#" + this.className).offset().top}, 500);//          $("#" + this.className)[0].scrollIntoView(true);//h5 scrollIntoView()});
    });</script>
Nach dem Login kopieren
Code anzeigen

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von scrollIntoView in h5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage