3

我希望当用户滚动到页面上的特定位置(向下 900 像素)然后在特定位置(向下 1800 像素)消失时出现一个 div。我有一个可行的解决方案,但是当用户向上滚动超过初始出现点(距顶部 900 像素)时,它会中断。

到那时,它就不会再消失了。总而言之,我需要帮助修改我的代码以使 div 在通过它出现的原始点后再次消失。

这是我的测试页面的链接:http: //jltest.biz/test-1

下面是我的代码:

var startY = 900;
var stopY = 1800;

$(window).scroll(function(){
    checkY();
});

function checkY(){
    if( $(window).scrollTop() > startY ){
         if( $(window).scrollTop() > stopY ){
         $('.fixedDiv').fadeOut("slow");
   }
   else
   {  $('.fixedDiv').fadeIn("slow"); }
}
}

checkY();

感谢您的时间!

4

4 回答 4

1

您在 if 语句中的登录有错误,导致它无法工作,请查看

var startY = 900;
var stopY = 1800;

$(window).scroll(function(){
    checkY();
});

function checkY()
{
    console.log($(window).scrollTop()); 
    if($(window).scrollTop() > startY && $(window).scrollTop() <= stopY)
    {    
         $('.fixedDiv').fadeOut("slow");
    }
    else
    {

         $('.fixedDiv').fadeOut("slow");
    }
}

checkY();

也检查一下http://jsfiddle.net/gLWxF/

我希望这可以帮助:)

于 2013-07-21T02:30:15.770 回答
0

就这样做

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>

var startY = 900;
var stopY = 1800;

$(window).scroll(function(){
    checkY();
});

function checkY()
{
    console.log($(window).scrollTop()); 
    if($(window).scrollTop() > startY && $(window).scrollTop() <= stopY)
    {
        console.log("Show"); 

        $('.foxedDiv').show(); 
    }
    else
    {
        console.log("Hide"); 
        $('.foxedDiv').hide();
    }
}

checkY();
</script>

<style> 
body
{
background:red;
    height:3000px; 
}
.foxedDiv
{
    display:none; 
    position:fixed; 
    top:50px; 
    right:10px; 
}
</style>
</head>
<body >
<div class="foxedDiv" >
    {loadposition moving}
	<br>
	
</div>
</body>
</html>

于 2015-04-30T12:22:58.363 回答
0

而不是有时当你快速滚动时$(window).scrollTop() > startY使用它可能会跳过一个数字。$(window).scrollTop() >= startY

这确保如果它大于或等于startY

于 2013-07-21T01:12:57.950 回答
0

当滚动点在开始位置之前时应该触发淡出方法对吗?所以我认为你需要改变你的运营商,如下所示。

function checkY(){
    if( $(window).scrollTop() < startY ){
         if( $(window).scrollTop() > stopY ){
         $('.fixedDiv').fadeOut("slow");
   }
   else
   {  $('.fixedDiv').fadeIn("slow"); }
}
于 2013-07-21T01:19:10.227 回答