监听页面滚动及滚动到指定位置

两种监听页面滚动的方法

一、原生js通过window.onscroll监听

window.onscroll = function() {
  //为了保证兼容性,这里取两个值,哪个有值取哪一个
  //scrollTop就是触发滚轮事件时滚轮的高度
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  console.log("滚动距离" + scrollTop);
}

二、Jquery通过$(window).scroll()监听

$(window).scroll(function() {
  //为了保证兼容性,这里取两个值,哪个有值取哪一个
  //scrollTop就是触发滚轮事件时滚轮的高度
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  console.log("滚动距离" + scrollTop);
})

将页面滚动到指定位置

主要使用的是锚点技术,锚点元素通过scrollTop值改变进行定位。

锚点

锚点是网页制作中超级链接的一种,又叫命名锚记。命名锚记像一个迅速定位器一样,是一种页面内的超级链接。

法一 直接使用scrollTop

使用scrollTop方法,x为滚轮的高度
$("body,html").scrollTop(x);

加动画的滚动

// 滚动到指定位置
$('html, body').animate({  
  scrollTop: $("#div1").offset().top  
}, 2000);  
// 滚动到顶部,指定距顶部的距离
$('.scroll_top').click(function(){
  $('html,body').animate({
    scrollTop: '0px'
  }, 800);
 });

法二 利用hash

hash

hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。
location.hash=anchorname。

例如:以下地址的hash为#hot

http://this.summer.io/is/#hot    // location.hash → #hot

以下函数将页面定位到title元素

function aa(){
 window.location.hash = "#title";  
}

法三 直接使用超链接锚点

点击a标签页面将会定位到anchor1元素

<a href="#anchor1">锚点1</a>

如想深入了解可查看锚点定位技术机制、应用与问题此文章。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • // 定义一个人的类 class Person:NSObject { // 给类拟定两个属性 var name:S...
    唯一的信仰阅读 578评论 0 0
  • 仿佛一个人一旦优秀到了某种程度,就会给大家留下高高在上、爱答不理的形象。 H就扮演者这样的角色,作为我的直系学姐,...
    真情假锐阅读 36,683评论 250 1,451
  • 一,普通人要有一个平和的心态 小时候最快乐的事情,莫过于收听刘兰芳说的评书《岳飞传》。曾记得在牛头山...
    教育的天空阅读 1,167评论 1 1