检测是否在文档加载时滚动页面

时间:2015-08-05 10:32:01

标签: javascript jquery

我正在使用scrollTop检测用户是否滚动fadeIn元素:

$(document).ready(function() {
    // scroll to top
    $(window).scroll(function() {
        if ($(this).scrollTop() >= 700) { // if page is scrolled more than 700px
            $('#return-to-top').fadeIn(200);
        } else {
            $('#return-to-top').fadeOut(200);
        }
    });
});

如果用户加载页面然后滚动,它会很好用,但如果用户已经低于700px并重新加载或返回到同一页面,则元素在文档加载时不会自动fadeIn。似乎没有检测到页面已经滚动。

知道我的代码有什么问题吗?

3 个答案:

答案 0 :(得分:6)

在文档准备就绪时进行测试

最好创建一个功能

function checkScroll(){
    if ($(window).scrollTop() >= 700) {
        $('#return-to-top').fadeIn(200);
    } else {
        $('#return-to-top').fadeOut(200);
    }
}

$(document).ready(function() {
    checkScroll();
    $(window).scroll(checkScroll);
});

答案 1 :(得分:1)

以这种方式调用你的函数

准备好文档的这一行。

$(window).scroll();

答案 2 :(得分:0)

在委派后简单地触发滚动。

$monthId = ....
$date = new \DateTime();

# Overwrite the date with first day in the month
$y = (int)$date->format('Y');
$date->setDate($y, $monthId, 1); 

# Create a formatter
$fmt = new IntlDateFormatter(
    'en_US', // Your locale?
    "LLLL", // <--- This is the LONG MONTH format
    IntlDateFormatter::FULL,
    'America/Los_Angeles', // Time zone, not important in this case
    IntlDateFormatter::GREGORIAN
);

# Format the month
$monthName = $fmt->format($date);