怎样用原生js获取滚动条滚动的距离

JavaScript019

怎样用原生js获取滚动条滚动的距离,第1张

使用js获取的相关方法

//回到页面顶部

    $("#goTotop").click(function(){

        $('body,html').animate({scrollTop:0},1500) //点击按钮让其回到页面顶部

    })

     

    $(window).scroll(function() {

        var yheight1=window.pageYOffset //滚动条距顶端的距离

        var yheight=getScrollTop() //滚动条距顶端的距离

        var height =document.documentElement.clientHeight//浏览器可视化窗口的大小

        var top=parseInt(yheight)+parseInt(height)-217

        var divobj=$(".kf")

        divobj.attr('style','top:'+top+'px')

    })

     

/**

 * 获取滚动条距离顶端的距离

 * @return {}支持IE6

 */

function getScrollTop() {

        var scrollPos

        if (window.pageYOffset) {

        scrollPos = window.pageYOffset }

        else if (document.compatMode && document.compatMode != 'BackCompat')

        { scrollPos = document.documentElement.scrollTop }

        else if (document.body) { scrollPos = document.body.scrollTop } 

        return scrollPos 

}

jQuery获取的相关方法

jquery 获取滚动条高度

获取浏览器显示区域的高度 : 

$(window).height() 

获取浏览器显示区域的宽度 :

$(window).width() 

获取页面的文档高度 :

$(document).height() 

获取页面的文档宽度 :$(document).width()

获取滚动条到顶部的垂直高度 :

$(document).scrollTop() 

获取滚动条到左边的垂直宽度 :

$(document).scrollLeft()

计算元素位置和偏移量:

$(id).offset()

offset方法是一个很有用的方法,它返回包装集中第一个元素的偏移信息。默认情况下是相对body的偏移信息。结果包含 top和left两个属性。

offset(options, results)

options.relativeTo指定相对计

算偏移位置的祖先元素。这个元素应该是relative或absolute定位。省略则相对body。

options.scroll是否把

滚动条计算在内,默认TRUE

options.padding是否把padding计算在内,默认false

options.margin

是否把margin计算在内,默认true

options.border是否把边框计算在内,默认true

使用js获取的相关方法

//回到页面顶部

$("#goTotop").click(function(){

$('body,html').animate({scrollTop:0},1500) //点击按钮让其回到页面顶部

})

$(window).scroll(function() {

var yheight1=window.pageYOffset //滚动条距顶端的距离

var yheight=getScrollTop() //滚动条距顶端的距离

var height =document.documentElement.clientHeight//浏览器可视化窗口的大小

var top=parseInt(yheight)+parseInt(height)-217

var divobj=$(".kf")

divobj.attr('style','top:'+top+'px')

})

/**

 * 获取滚动条距离顶端的距离

 * @return {}支持IE6

 */

function getScrollTop() {

var scrollPos

if (window.pageYOffset) {

scrollPos = window.pageYOffset }

else if (document.compatMode && document.compatMode != 'BackCompat')

{ scrollPos = document.documentElement.scrollTop }

else if (document.body) { scrollPos = document.body.scrollTop } 

return scrollPos 

}

如果使用jquery的话,可以这样写:

$(window).bind("scroll", function(){ 

        var top = $(this).scrollTop() // 当前窗口的滚动距离

  })

如果使用原生js,可以这样写(摘自网上的):

/** 

 * 获取<a href="https://www.baidu.com/s?wd=%E6%BB%9A%E5%8A%A8%E6%9D%A1&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YzPARYuhu9m1n3mhDknWmd0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHT1nWmLnW6snH03nHnkPHbYPs" target="_blank" class="baidu-highlight">滚动条</a>距离顶端的距离 

 * @return {}支持IE6 

 */  

function getScrollTop() {  

        var scrollPos  

        if (window.pageYOffset) {  

        scrollPos = window.pageYOffset }  

        else if (document.compatMode && document.compatMode != 'BackCompat')  

        { scrollPos = document.documentElement.scrollTop }  

        else if (document.body) { scrollPos = document.body.scrollTop }   

        return scrollPos   

}