我希望找到一种方法来获取当前可视窗口的位置(相对于总页面宽度/高度),这样我就可以使用它来强制从一个部分滚动到另一个部分.但是,当猜测哪个对象拥有您浏览器的真实X/Y时,似乎有大量选项.
我需要确保IE 6 +,FF 2+和Chrome/Safari的哪些工作?
window.innerWidth
window.innerHeight
window.pageXOffset
window.pageYOffset
document.documentElement.clientWidth
document.documentElement.clientHeight
document.documentElement.scrollLeft
document.documentElement.scrollTop
document.body.clientWidth
document.body.clientHeight
document.body.scrollLeft
document.body.scrollTop
Run Code Online (Sandbox Code Playgroud)
还有其他人吗?一旦我知道窗口在哪里,我就可以设置一个慢慢调用的事件链,window.scrollBy(x,y);直到达到我想要的点.
有没有办法用CSS3动画滚动?
像这样的东西?
@-webkit-keyframes scrolltoview
{
0% { scrollTop: 0; }
100% { scrollTop: 30%; }
}
Run Code Online (Sandbox Code Playgroud)
如何把css放在动画的起点?
http://jsfiddle.net/CbL7W/滚动事件行为的示例.
我有这个在Chrome和Firefox中都能正常运行的脚本.
var stickyNavigationOffsetTop = $('.top-nav').offset().top;
var stickyNavigation = function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavigationOffsetTop) {
$('.top-nav').css({ 'position': 'fixed', 'top': 0, 'left': 0, 'opacity': .8 });
} else {
$('.top-nav').css({ 'position': 'relative', 'opacity': 1 });
}
};
stickyNavigation();
$(window).scroll(function () {
stickyNavigation();
});
Run Code Online (Sandbox Code Playgroud)
但是Internet Explorer存在一些问题:在同一页面上我有这个脚本我有一个隐藏div的脚本的链接,当这种情况发生时有时页面会完全滚动回到页面顶部,但IE不是$(window).scroll当发生这种情况时开火
页面返回顶部时的问题的屏幕截图.
Chrome(OK):http: //i.stack.imgur.com/6WJx7.jpg
IE(错误):http: //i.stack.imgur.com/CXbKk.jpg
我只是想知道是否有办法压缩这个脚本?我的JS非常粗糙,但似乎我应该能够插入一个或运算符来为任何传递的类添加收缩类,但我似乎无法获得正确的语法.它似乎有很多冗余.
$(window).scroll(function() {
if ($(document).scrollTop() > 50) {
$('nav').addClass('shrink');
} else {
$('nav').removeClass('shrink');
}
if ($(document).scrollTop() > 50) {
$('.nav a').addClass('shrink');
} else {
$('.nav a').removeClass('shrink');
}
if ($(document).scrollTop() > 50) {
$('.navbar-brand').addClass('shrink');
} else {
$('.navbar-brand').removeClass('shrink');
}
});
Run Code Online (Sandbox Code Playgroud)
或者有没有办法将类添加到给定元素的所有子元素?