本文转自:http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=400345712&idx=1&sn=36eb26efcc3bce8e008b0dae4a501b67&scene=23&srcid=1026Bl3y1U7jxxgpGWrLDeuM#rd
由于不同浏览器其窗体滚动条的属性获取方式有所差异,故考虑兼容性,我们假设使用了场景是移动端,并且使用了zepto的库
首先,我们想要更好的操作控制条,需了解两个地方
-
滚动条属性
- 滚动条调用方法
var $scrollTarget = $(".ui-page");
//若为控制window滚动条
var currenY = $(document.body).scrollTop(); //当前window纵向滚动的位置
var currenX = $(document.body).scrollLeft(); //当前window横向滚动的位置
var Y = 想滚动到的垂直位置;
var X = 想滚动到的水平位置;
$(window).scrollTop(Y);
$(window).scrollLeft(X);
//若为页面内节点的滚动条
var currenY =$scrollTarget.scrollTop(); //当前scrollTarget纵向滚动的垂直位置
var currenX = $scrollTarget.scrollLeft(); //当前scrollTarget横向滚动条的位置
$scrollTarget.scrollTop(Y);
$scrollTarget.scrollLeft(X);
我们可以发现 在这里window滚动比较特殊
其获取滚动属性是用 document.body这个对象,而调用滚动条滚动方法是用window的对象
(不同浏览器其获取浏览器窗体滚动条的方式也存在着差异,大家可以去了解下)
接下来,我们了解下几个重要的属性值
//当前window可视内容区域宽高:
window.innerWidth
window.innerHeight
//浏览器滚动条偏移值:
$(document.body).scrollTop();
//节点offset值
$("#div").offset().top;
$("#div").offset().left;
//节点的宽高
$("#div").height();
$("#div").width();
//节点的滚动条偏移值
$("#div").scrollTop();
现在我们知道如何调用滚动条到指定的位置和获取滚动条偏移值,那么我们来做一个需求把
需求描述 : 希望通过点击按钮,使绿色区域的item,能够定位到屏幕中间