Tag: scrolltop

jquery scrolltop()返回上一个滚动位置的值

我使用jquery函数element.scrollTop()来使用以下行获取页面的当前滚动位置: var currentScrollPosition= $(‘html’).scrollTop() || $(‘body’).scrollTop(); 但它总是返回前一个滚动位置的值。 请检查下面的代码(与此处的代码相同)。 正如您可以尝试自己并在代码中看到的,在每个小滚动之后,我们得到以下一系列值: (1:代码首次运行时尚无动作) 增量:0 cumulativeDelta:0 functionCallCount:0 currentScrollPosition:0 (delta给出滚动多少,cumulativeDelta给出滚动总量,functionCallCount是滚动的次数,currentScrollPosition是scrolltop()返回的值) (2:滚动一点时) 三角洲:-120 cumulativeDelta:-120 functionCallCount:1 currentScrollPosition:0 (请注意,currentScrollPosition仍未更新) (3:进一步滚动时) 三角洲:-120 cumulativeDelta:-240 functionCallCount:2 currentScrollPosition:90.90908893868948 (这里,cumulativeDelta,是目前为止所做的总滚动的加法,加倍,并且currentScrollPosition首次更新) (4:滚动时多一点) 三角洲:-120 cumulativeDelta:-360 functionCallCount:3 currentScrollPosition:181.81817787737896 (现在,cumulativeDelta增加了三倍,而currentScrollPosition增加了一倍。因此,这是两个滚动后的值,但是更新后3个滚动) 我为长期问题道歉,但很难另有说法。 我想知道为什么会发生这种情况,如果我应该以其他方式使用此函数,则可以使用此函数的任何替代方法。 document.addEventListener(“mousewheel”, MouseWheelHandler); var cumulativeDelta = 0, functionCallCount = 0; function MouseWheelHandler(e) { e = window.event || e; // ‘event’ with […]

通过superscrollorama中的固定元素播放

我正在使用SuperScrollorama建立一个Parallax网站 ,它使用jquery和css3一帧一帧地制作动画…… 但在结束这样做之后我遇到了问题,我正在尝试使用一些滚动插件来浏览页面… 我已经尝试了使用scrollTop事件的Basic jquery,使用Jquery ScrollTo并使用Tween Lite ScrollTo插件来浏览页面,但似乎没有任何工作…… 我在goggling之后得到的问题是,如果页面被固定在一起作为position:fixed; 并且页面不会滚动到该位置并且卡在…之间 使用Jquery ScrollTo ,我的代码: – $(‘.menus a’).click(function(e){ e.preventDefault(); $.scrollTo(this.hash, 2000, { easing:’easeInOutExpo’, offset:3000, axis:’y’, queue:true }); }); 使用基本的scrollTop jquery ,我的代码: – $(‘a’).bind(‘click’,function(event){ var $anchor = $(this); $(‘html, body’).stop().animate({ scrollTop: $($anchor.attr(‘href’)).offset().top }, 1500,’easeInOutExpo’); event.preventDefault(); }); 目前我的代码是这样的: – http://jsfiddle.net/tFPp3/6/ 正如你在我的演示中看到的那样,滚动卡在两者之间通过哈希到达确切的位置… 如果我必须玩Superscrollorama中的固定元素,那么解决方案是什么?

Ipad上的ScrollLeft和ScrollTop使用动画链(jQuery)

我一直在理解为什么在每个最新的浏览器上我的代码工作,而不是在iPad上,它只能在一半的方式工作。 首先,这是我正在努力工作的网站: http : //madovar.com 我想,当我点击顶部的联系我们链接,滚动到右边然后到底部,使用jQuery的动画,它在FF,IE8 +和chrome,safari中运行良好。 但当我上iPad时,它就像它想象的那样向右移动,然后开始向下滚动一点并直接向左移动,然后将滚动动画设置为我代码的空白部分。 这是我的脚本: jQuery(document).ready(function($) { $(‘.contact’).bind(‘click’, function (event) { $(‘html, body’).animate({ scrollLeft: “+=2200” }, 1500, ‘easeInOutExpo’).delay(400).animate({ scrollTop: “+=2000” }, 3000, ‘easeInSine’); event.preventDefault(); }); }); 请帮助我,我已经搜索了Internet和Stackoverflow。 谢谢

为什么.anan在动画制作之前会将scrollTop跳转到0?

我在那个耐克网站上玩Parallax滚动。 所以我一直在使用scrollTop来确定用户在页面上的垂直位置,然后我一直根据对该值的更改调整元素的位置。 在这里,我舍入scrollTop值并记录它。 我稍后会显示日志。 var distance = 60*(Math.round($(window).scrollTop()/60)); console.log(distance); 然后,在单击时,我调用此函数滚动到我传递的scrollTop值。 function goTo(n){ console.log(‘begin animating’); $(‘html,body’).animate({scrollTop: n},2000); } 这是问题,在动画制作之前,滚动顶部值会跳转到0。 所以我将在页面的中间位置记录下来: begin animating 0 6240 6180 6120 // etc… 我定位东西的方式依赖于scrollTop值的准确性。 所以我的问题是: 在完成动画之前,如何让scrollTop值保持跳转到0? 如果需要更多信息,请告诉我。 inheritance人网站的现场版本: http : //theblueeyeguy.com/moon/Illumination/ (点击’下一步’然后’上一个’来打破它)

jQuery scrolltop – 首次使用后无法正常工作

我在这个菜单上使用jQuery scrolltopfunction: http ://goethesternfriseure.de/index.php 问题是滚动function仅在第一次工作。 在第二次点击链接后,它会滚动到底部。 $(‘.sectionlink’).click(function(e){ var sectionelement = $(this).attr(“rel”); var myoffset = $(‘#’+sectionelement).offset().top; $(‘html, body’).animate({ scrollTop: myoffset }, 800); e.preventDefault(); }); 有谁知道那里发生了什么?

为什么jQuery必须接收2个对象:使用动画滚动整个页面时的body和html?

在我在网上用jQuery动画滚动页面的所有教程中,我发现他们中的大多数都使用以下代码来做到这一点: $(“html, body”).animate(…. 我试图找出为什么需要动画2个物体:html和身体,但不是运气。 我可能认为需要涵盖所有主流浏览器…但为什么真的, 有人可以解释一下吗?

触发$(窗口).scroll();

当我调用$(“body”).animate({scrollTop: someValue}); 我想要$(window).scroll(function() { }); 也被称为。 我怎样才能做到这一点? 我尝试过$(window).trigger(“scroll”)和$(window).triggerHandler(“scroll”)但没有成功。 代码 编辑:问题解决了。 我的$(window).scroll(function() { });有一个if $(window).scroll(function() { }); 那导致了这个问题。

即使是最简单的.scrollTop()示例也会返回0

我需要找到元素相对于视口的垂直位置。 我发现jquery .scrollTop()函数就是这个,但它返回0.它确实在检查$(document)的scrollTop时返回正确的值,但我需要元素的位置,而不是窗口位置。 难道我做错了什么? HTML: 1 2 JavaScript的: $(window).scroll(function() { console.log($(“span”).scrollTop()) }) Jsfiddle: http : //jsfiddle.net/kwVC7/ 我想我可以用这个来做这个工作: $(“span”).offset().top – $(document).scrollTop() 但我仍然感兴趣的是为什么element.scrollTop不能正常工作。

滚动时:如果scrollTop()等于或达到值execute事件

我正在尝试在向下滚动到某个点/值时触发事件,并在再次向上和向下滚动时再次执行。 我试过了: $(window).scroll(function(){ var sTop = $(this).scrollTop(); if(sTop == 300){ //execute event – failed } }); 上述内容不会通过鼠标滚轮和拖动滚动条来触发任何内容。 但是当我将条件更改为大于或等于时,事件正在执行,但在向下滚动时多次执行。 if(sTop >= 300){ //execute event – success } 我也试过改变条件值,有时候事件被触发了。 if(sTop == 333 /* or 431, 658, etc. */){ //execute event – sometimes success } 这是我的测试小提琴 。 如果滚动速度快, scroll()函数有时会跳过一个值吗? 有人可以解释这个问题并帮助我解决在$(window).scrollTop() == ‘value’时如何触发事件的方法。 谢谢

当url包含锚点时,获取网页页面滚动条的垂直位置

我正在使用jQuery的scrollTop()方法来获取pageload上滚动条的垂直位置。 我需要在执行url中的锚点后获取此值(例如:www.domainname.com#foo)。 我可以使用以下代码,它适用于Firefox和IE: ex url:www.domainname.com#foo $(document).ready(function() { if ($(this).scrollTop() > 0) { // then a conditional statement based on the scrollTop() value if ($(this).scrollTop() > $(“#sidenav”).height()) { … 但是在Safari和Chrome中,document.ready()似乎在锚点之前执行,因此在此场景中,scrollTop()在页面加载时返回0。 在Chrome和Safari中执行锚点后,如何在页面加载时访问scrollTop()值?