有什么区别:
$(window).scrollTop()
Run Code Online (Sandbox Code Playgroud)
和
$(document).scrollTop()
Run Code Online (Sandbox Code Playgroud)
谢谢.
单击按钮时,我将页面设置为滚动到顶部.但首先我使用if语句来查看页面顶部是否未设置为0.然后,如果它不是0,我会动画页面滚动到顶部.
var body = $("body");
var top = body.scrollTop() // Get position of the body
if(top!=0)
{
body.animate({scrollTop:0}, '500');
}
Run Code Online (Sandbox Code Playgroud)
现在棘手的部分是在页面滚动到顶部之后动画一些东西.所以我的下一个想法是,找出页面位置是什么.所以我用console log来查找.
console.log(top); // the result was 365
Run Code Online (Sandbox Code Playgroud)
这给了我一个365的结果,我猜这是我在滚动到顶部之前的位置编号.
我的问题是如何将位置设置为0,以便我可以添加另一个在页面为0时运行的动画?
谢谢!
这个功能很好.它将主体滚动到所需容器的偏移量
function scrolear(destino){
var stop = $(destino).offset().top;
var delay = 1000;
$('body').animate({scrollTop: stop}, delay);
return false;
}
Run Code Online (Sandbox Code Playgroud)
但不是在Firefox中.为什么?
-编辑-
要在接受的答案中处理de double触发器,我建议在动画之前停止元素:
$('body,html').stop(true,true).animate({scrollTop: stop}, delay);
Run Code Online (Sandbox Code Playgroud) 一旦页面的滚动位置达到一定高度,我就会尝试做某事.然而scrollTop()返回0或null无论我滚动多远.这是我用来检查scrollTop()值的帮助功能:
$('body').click(function(){
var scrollPost = $(document).scrollTop();
alert(scrollPost);
});
Run Code Online (Sandbox Code Playgroud)
我试图连接scrollTop()到$('body'),$('html')当然$(window),但没有任何变化.
有任何想法吗?
我正在使用角度5.我有一个仪表板,我有几个部分内容很少,几个部分内容如此之大,以至于我在更换路由器时遇到问题.每次我需要滚动到顶部.任何人都可以帮助我解决这个问题,以便当我更改路由器时,我的视图始终保持在顶部.
提前致谢.
尝试使浏览器滚动到具有添加偏移量的特定ID -
$('html, body').animate({scrollTop: $('#contact').offset().top}, 'slow');
Run Code Online (Sandbox Code Playgroud)
我需要做的是将偏移设置为-100px.我怎么能做到这一点?
我在div里面有一个gridview ..我想使用jquery从div底部滚动到div的顶部..任何建议..
<div id="GridDiv">
// gridview inside..
</div>
Run Code Online (Sandbox Code Playgroud)
我的gridview将自定义分页生成链接按钮...我将滚动到链接按钮底部的div顶部点击...
protected void Nav_OnClick(object sender, CommandEventArgs e)
{
LinkButton lb1 = (LinkButton)sender;
//string s = lb1.ID;
ScriptManager.RegisterClientScriptBlock(lb1, typeof(LinkButton),
"scroll", "javascript:document.getElementById('GridDiv').scrollTop = 0;", true);
Run Code Online (Sandbox Code Playgroud)
在javascript的位置,我将调用jquery函数...任何建议......
编辑:
完全像每个用户页面的Stackoverflow问题...当更改页面nos时,它滚动到顶部,效果流畅......我想实现这一点......
我正在使用Angular框架编写单页应用程序.我是新手.我已阅读本指南,以帮助我理解jQuery和Angular之间的根本区别,我想尽可能地遵循本指南,而不是使用jQuery.
除了jQuery有助于解决一些浏览器不兼容问题并提供一个有用的函数库,比如能够从窗口顶部知道元素的顶部位置,如$('element').offset().top.没有普通的JavaScript似乎能够接近而不需要重写这个功能,在这一点岂不是一个更好的主意,用一个jQuery或类似的jQuery库?
具体来说,我正在尝试做的是设置一个指令,一旦元素的顶部滚动到窗口中的某个位置,就将元素固定到位.这是它的样子:
directives.scrollfix = function () {
return {
restrict: 'C',
link: function (scope, element, $window) {
var $page = angular.element(window)
var $el = element[0]
var elScrollTopOriginal = $($el).offset().top - 40
$page.bind('scroll', function () {
var windowScrollTop = $page[0].pageYOffset
var elScrollTop = $($el).offset().top
if ( windowScrollTop > elScrollTop - 40) {
elScrollTopOriginal = elScrollTop - 40
element.css('position', 'fixed').css('top', '40px').css('margin-left', '3px');
}
else if ( windowScrollTop < elScrollTopOriginal) {
element.css('position', 'relative').css('top', '0').css('margin-left', '0');
} …Run Code Online (Sandbox Code Playgroud) 当试图找出从顶部滚动了多少网页时,应该使用哪一个:
document.body.scrollTop,
document.documentElement.scrollTop,
window.pageYOffset,
window.scrollY
在这两个不同的场景中我会选择哪一个:
a)如果我想要最大的兼容性(跨目前使用的主要浏览器)?
b)如果我想要符合最符合标准/未来证明/严格模式兼容的代码(但不关心支持旧/非标准浏览器)?
似乎body.scrollTop(和body.scrollLeft)在ES5严格模式下被弃用.这是什么原因,因为在其他DOMElements 上使用这些属性似乎仍然可以吗?
背景资料:
我有一个函数,试图增加(或减少,如指定)的scrollTop所有祖先的值element,直到其中一个实际更改.我想知道,为了保持对严格模式的投诉,我应该特别检查body元素,因为父母的链向上移动.
[显然,body指document.body]
scrolltop ×10
jquery ×7
javascript ×5
window ×2
angular ×1
angularjs ×1
document ×1
firefox ×1
html ×1
offset ×1
scroll ×1
strict-mode ×1
typescript ×1