h5之scrollIntoView用法详解

  如果滚动页面也是DOM没有解决的一个问题。为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动。在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法。scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中。如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平。如果传入false作为参数,调用元素会尽可能全部出现在视口中(可能的话,调用元素的底部会与视口的顶部齐平。)不过顶部不一定齐平.

一、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>

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;
        }

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);
        };
    }

二、滚动监听

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>

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;

        }

js

    $(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()});
    });

全部代码

<!DOCTYPE html><html><head><meta charset=utf-8><title>h5之scrollIntoView控制页面元素滚动</title><style>/*scrollIntoView*/#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;}/*scroll*/.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;}</style></head><body><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 src=http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js?1.1.11></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></body></html>
View Code

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码
HTML5使用DOM进行自定义控制
使用HTML5 Canvas绘制阴影效果的方法
使用PHP和HTML5 FormData实现无刷新文件上传
如何解决HTML5 虚拟键盘出现挡住输入框的问题
HTML5中div和section以及article的区别分析
html5和CSS 实现禁止IOS长按复制粘贴功能
html5 touch事件实现触屏页面上下滑动
canvas 模拟实现电子彩票刮刮乐的代码
HTML5 Plus 实现手机APP拍照或相册选择图片上传的功能
Android自定义环形LoadingView效果
HTML5 canvas绘制五角星的方法
html5使用html2canvas实现浏览器截图
使用Canvas处理图片的方法介绍
利用Canvas模仿百度贴吧客户端loading小球的方法