【问题标题】:$(window).scrollTop() is not working in safari$(window).scrollTop() 在 safari 中不起作用
【发布时间】:2019-04-10 21:47:15
【问题描述】:

它在 firefox 和 chrome 上运行良好,但 safari 似乎有一些问题。这是代码。

function founders() {
var scrollPos = $(window).scrollTop();
    if (scrollPos == 900) {
        $(function() {
            $(".first_fall").fadeIn(1000);
            $(".second_fall").fadeIn(2000);
            $(".third_fall").fadeIn(3000);
        });
    };
}

这就是我的称呼

$(document).ready(function(e) {
        $(window).bind('scroll', function() {
            founders();
        });
   });

同样的功能在不同页面上的 safari 和 chrome 上运行良好。这里是代码

$(function() {
    $(window).bind('scroll', function() {
        zoomed();
    });
}());

function zoomed() {
    var scrollPos = $(window).scrollTop();
        if (scrollPos >= 500 && scrollPos <= 800) {
            $(function() {
               $('#icon_you').animate({
                opacity: 0
            });

            $('.about_head').animate({
                opacity: 1
            });
        });
    } else {
        $(function() {
            $('.about_head').animate({
                opacity: 0
            });
            $('#icon_you').animate({
                opacity: 1
            });
        });
    };
    if (scrollPos >= 1100 && scrollPos <= 1500) {
        $(function() {
            $('.about_company_head').animate({
                opacity: 1
            });
            $('#icon_company').animate({
                opacity: 0
            });
        });
    } else {
        (function() {
            $('.about_company_head').animate({
                opacity: 0
            });
            $('#icon_company').animate({
                opacity: 1
            });
        });
    };
    if (scrollPos >= 1700 && scrollPos <= 2200) {
        $(function() {
            $('.about_project_head').animate({
                opacity: 1
            });
            $('#icon_project').animate({
                opacity: 0
            });
        });
    } else {
        $(function() {
            $('.about_project_head').animate({
                opacity: 0
            });
            $('#icon_project').animate({
                opacity: 1
            });
        });
    };
    if (scrollPos >= 2700 && scrollPos < 3200) {
        $(function() {
            $('.about_practical_head').animate({
                opacity: 1
            });
            $('#icon_practical').animate({
                opacity: 0
            });
        });
    } else {
        $(function() {
            $('.about_practical_head').animate({
                opacity: 0
            });
            $('#icon_practical').animate({
                opacity: 1
            });
        })
    };
}

【问题讨论】:

  • 您使用的是什么版本的 Safari?
  • 感谢Sander的回复。我用的是5.1.7版
  • 如果你使用 $(document).scrollTop() 会有什么不同吗?或者它会给你同样的结果吗?或者甚至可能是 $("html").scrollTop()?
  • $(window).scrollTop() 不是应该比其他浏览器更适合浏览器吗?无论如何,让我稍后再回复您。
  • 嘿,桑德,我都试过了,但都没有运气。 $(""html).scrollTop() 甚至破坏了 chrome 支持,因此我恢复到 $(window).scrollTop() 本身。

标签: javascript jquery scrolltop


【解决方案1】:

试试

var scrollPos = $("body").scrollTop();

webkit 浏览器总是将 window/html scrollTop 呈现为零。

【讨论】:

  • 这并不能解决问题。但它在 chrome 中运行良好。抱歉我之前有一个错字。但它只能在 chrome 中运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 2015-07-10
  • 1970-01-01
相关资源
最近更新 更多