相关疑难解决方法(0)

jQuery scrollTop跨浏览器不一致

在Chrome和Safari中,$("body").scrollTop(1000)符合预期.

在IE和FF中,没有任何反应.

在IE和FF中,$(window).scrollTop(1000)可以工作,但是它们会去不同的地方.它也可以在Chrome和Safari中使用,但它们也可以在不同的地方使用.他们似乎关闭了高达300-500像素.

是否有任何一致的方法来设置跨浏览器工作的scrollTop属性,如果没有,为什么jQuery不抽象这个?

我也希望为它制作动画,这在Chrome和Safari中运行良好,但在其他浏览器中则无效.

我是浏览器检测的唯一选择吗?(不好的做法)或者有更好的方法吗?

javascript jquery scrolltop

10
推荐指数
2
解决办法
7312
查看次数

同样的旧问题,.scrollTop(0)在Chrome和Safari中无效

首先,我要指出,我GOOGLE了,甚至看了看这里像回答这个这个,但是,我还是没有找到我的情况下工作的解决方案.

我设计了一个页面,其中有几个固定元素覆盖页面,并使html5/css3在主文档上创建一个干净的"蒙版",从而允许主体滚动条仍然滚动底层内容.

在firefox和ie(bleh)中,scrollTop(0)工作正常.但是,正如问题所述,在我喜欢的浏览器中并没有那么多.

我记下的一件事是在scrollTo事件之前和之后调用以下内容

$("body,html,document").each(function(){ console.log($(this).scrollTop()); });
Run Code Online (Sandbox Code Playgroud)

结果并不令人满意,它告诉我,scrolltop已经是0,因此甚至没有尝试使用scrollTop,或者至少那是我迄今为止"想到的".

在你问之前,我在这3个项目中的每个项目都进行了控制台调用,因为文档scrolltop应该被覆盖在其中一个项目中(我会想到身体,但是就像你必须调用html一样)

任何关于想法的人?

仅供参考,它可能是一个古怪的CSS(寿它是如何工作的IE浏览器,而不是铬我真的无法理解),但我已经尝试用下面的负面结果:

$(window).scrollTop(0);
$(document).scrollTop(0);
$("html").scrollTop(0);
$("body").scrollTop(0);
window.scroll(0,0);
$("body,html,document").scrollTop(0);
$("body,html").scrollTop(0);
Run Code Online (Sandbox Code Playgroud)

我想这扩展了我的问题,这是一个CSS问题吗?我没有外部链接,代码太长(用CI视图Partials制作)发布所有内容,但要澄清我做了什么:

  • 修复了页眉,页脚和侧边栏,使内容与文档滚动条一起滚动
  • 到目前为止实现的javascript或jquery非常少,在预定元素的固定位置之外几乎有0个自定义css
  • "内容"是基于单边栏导航器中单击的列表项使用jQuery的.load函数的ajax

临时小提琴不再起来

safari jquery google-chrome scrolltop

7
推荐指数
3
解决办法
4万
查看次数

为什么 ScrollTop 位置在移动 Safari 上不起作用?

我的网站上有一个功能,徽标根据用户在网站上的位置垂直滚动。

你可以在这里看到它在 Chrome 上的运行情况

但它不适用于 Safari(包括手机和平板电脑)。

控制台中的滚动位置似乎根本没有改变。

// logo positioning  

let logos, logoHeight, barTopMargin;
let viewportHeight;

window.addEventListener('load', init);
window.addEventListener('resize', setSizes);
document.addEventListener('scroll', update);


function init(lockUpdate) {
    logos = document.querySelectorAll('.scroll-text');
    setSizes(lockUpdate);
}

function update() {
    // ensure initialization and prevent recursive call
    if (!logos) init(true);
    //*************************************************

    /**************************************************
        THIS LINE MUST BE HERE.
    **************************************************/
    let maxScrollDist  = document.documentElement.scrollHeight - viewportHeight;
    //*************************************************

    let currentScrollPos = document.documentElement.scrollTop;
    let newTop;

    let middle = currentScrollPos + viewportHeight/2;
    let middleY = maxScrollDist/2;

    if (middle >= (maxScrollDist+viewportHeight)/2) { …
Run Code Online (Sandbox Code Playgroud)

javascript safari scrolltop

5
推荐指数
1
解决办法
2938
查看次数

标签 统计

scrolltop ×3

javascript ×2

jquery ×2

safari ×2

google-chrome ×1