2016-11-25 82 views
0

我想让用户向下移动时向上滚动一个div,然后,如果他们关闭了div,它应该保持隐藏状态。如何在滚动时关注div,但在点击时隐藏?

滚动工作正常,但我不能想象一种方法来阻止它重新出现后,用户隐藏div然后srcolls再次。

我已经将真正隐藏div的部分移至else-if语句。但else-if语句不起作用。

如果确实如此,我该如何确定它是否会粘住并且不会回看用户是否开始滚动?

我的代码现在

$('body').prepend('<div id="mydiv"></body>'); 

$(document).ready(function() { 
    $('#mydiv').delay(2000).animate({ 
    top: "100" 
    }, "fast", "linear") 
}); 

var hide = false; 

$("#hide-mydiv").click(function() { 
    hide = true; 
}); 

if (hide == false) { 

    $(document).scroll(function() { 
    var y = $(this).scrollTop(); 
    if (y <= 0) { 
     $('#mydiv').stop().animate({ 
     top: "100" 
     }, 0); 
    } else { 
     $('#mydiv').stop().animate({ 
     top: "50" 
     }, 0) 
    } 
    }); 
    elseif (hide == true) 
    $('#mydiv').animate({ 
     top: "-100" 
    }, "fast", "linear") 
    } 

回答

0

1)运行“隐藏” - 动画准确点击之后,您的标志变量设置为true

2)检查您的标志变量在滚动事件,而不是反之亦然

+0

嘿,感谢您的快速回复,但我是新来的JavaScript我几乎挽回了其他堆栈溢出的答案,并制作了我自己的脚本,但现在我无法将这两个放在一起..究竟如何做这个? – RzK