Javascript jQuery scrollTop()问题
我正在努力做到这一点: 当点击按钮时,html将被设置为“欢迎”部分的动画,只有在该部分中溢出y才可见(因此,如果不按下按钮,则无法从标题向下滚动)。(这是第一个剧本)。 但是我对第二个脚本有问题。基本上是滚动并将文档固定在0px高度,不能向下滚动。我在这里试图实现的是,如果您从欢迎部分向后滚动,html将被动画化到页面顶部(以初始状态返回所有内容)Javascript jQuery scrollTop()问题,javascript,jquery,css,Javascript,Jquery,Css,我正在努力做到这一点: 当点击按钮时,html将被设置为“欢迎”部分的动画,只有在该部分中溢出y才可见(因此,如果不按下按钮,则无法从标题向下滚动)。(这是第一个剧本)。 但是我对第二个脚本有问题。基本上是滚动并将文档固定在0px高度,不能向下滚动。我在这里试图实现的是,如果您从欢迎部分向后滚动,html将被动画化到页面顶部(以初始状态返回所有内容) $(窗口).ready(函数(){ $(“.scroll icon”)。单击(函数(){ $('html,body')。设置动画({ scroll
$(窗口).ready(函数(){
$(“.scroll icon”)。单击(函数(){
$('html,body')。设置动画({
scrollTop:$(“#欢迎”).offset().top
}, 2000);
$(“html”).delay(200).queue(函数(下一个){
$(this.css)({
“溢出-y”:“可见”
});
next();
});
});
$(窗口)。滚动(函数(){
变量距离=$(“#欢迎”).offset().top
if($(文档).scrollTop()<距离){
$('html,body')。设置动画({
scrollTop:$(“#页眉”).offset().top
}, 2000);
}
});
});
下面是一个JSFIDLE,它显示了我的问题:
感谢大家:)我试过这个:
// 1. Use a flag to check when you're welcome to the party!.
window.ImWelcome = false;
// 2. Your event click handler -- Same
$(".scroll-icon").click(function() {
$('html, body').animate({
scrollTop: $("#welcome").offset().top
}, 2000);
});
// 3. Scroll handler...
$(window).scroll(function() {
// 3.1 Store the values
var distance = $("#welcome").offset().top
var scrollTop = $(document).scrollTop();
// 3.2 So..? Did you arrive to the party already ?
if(scrollTop == distance){
window.ImWelcome = true; // 3.2.1 Oh Yeah!
}
// 3.3 Hmmm ... Seems like you want to leave huh? Ok let me take you to home
if ($(document).scrollTop() < distance && window.ImWelcome) {
$('html, body').animate({
scrollTop: $("#header").offset().top
}, 2000);
// Oh You're home and not welcomed
window.ImWelcome = false;
}
});
//1。当欢迎你参加聚会时,用旗子检查一下!。
window.ImWelcome=false;
// 2. 您的事件单击处理程序--相同
$(“.scroll icon”)。单击(函数(){
$('html,body')。设置动画({
scrollTop:$(“#欢迎”).offset().top
}, 2000);
});
// 3. 滚动处理程序。。。
$(窗口)。滚动(函数(){
//3.1存储值
变量距离=$(“#欢迎”).offset().top
var scrollTop=$(document.scrollTop();
//3.2那么……?你已经到派对了吗?
如果(滚动顶部==距离){
window.ImWelcome=true;//3.2.1哦,是的!
}
//3.3嗯…看来你想离开了,嗯?好吧,让我带你回家
if($(document.scrollTop()
现在,严肃地说,旗帜方法很简单。这使用了一个全局变量,因为它必须将状态保留在标志中
谢谢!你真是太好了,谢谢你的解释:)我有另一个问题。单击事件仅播放一次。因此,一旦回到顶部,滚动图标被重新勾选,什么也没有发生:\n当我发布答案时,我意识到了一个问题。现在我再次测试并编辑了它@soldierI不知道我有多感激你的帮助!:)一切都很顺利。非常感谢你Jeancarlo:)(我甚至学会了使用旗帜!)祝你有愉快的一天
// 1. Use a flag to check when you're welcome to the party!.
window.ImWelcome = false;
// 2. Your event click handler -- Same
$(".scroll-icon").click(function() {
$('html, body').animate({
scrollTop: $("#welcome").offset().top
}, 2000);
});
// 3. Scroll handler...
$(window).scroll(function() {
// 3.1 Store the values
var distance = $("#welcome").offset().top
var scrollTop = $(document).scrollTop();
// 3.2 So..? Did you arrive to the party already ?
if(scrollTop == distance){
window.ImWelcome = true; // 3.2.1 Oh Yeah!
}
// 3.3 Hmmm ... Seems like you want to leave huh? Ok let me take you to home
if ($(document).scrollTop() < distance && window.ImWelcome) {
$('html, body').animate({
scrollTop: $("#header").offset().top
}, 2000);
// Oh You're home and not welcomed
window.ImWelcome = false;
}
});