jquery:检查窗口是否已滚动一次并执行某些操作

时间:2015-05-28 10:03:16

标签: javascript jquery cookies scroll

由于cookie法的新实施,我必须征得一些cookie的同意。其中一种方法是等待用户滚动页面一次,这在法律上是一种隐含的同意。

我尝试过:

jQuery(window).one('scroll', function(){
  $(this).data('scrolled', true);
});

if(jQuery(window).data('scrolled')) {
    console.log( 'ok' );
    //place cookies
} else {
    console.log( 'no' );
}

通过以下方式调用的脚本(http://www.primebox.co.uk/projects/jquery-cookiebar/)内的内容:

$(document).ready(function(){
                $.cookieBar({
                }); 
            });

但是,无论页面是否滚动,console.log总是告诉我“不”。

任何提示? 提前致谢

2 个答案:

答案 0 :(得分:1)

如果我这样改变,你的代码就可以了:

<script>
    jQuery(window).one('scroll', function()
    {
        $(this).data('scrolled', true);
        if(jQuery(window).data('scrolled'))
        {
            console.log('ok');
            //place cookies
        }
        else
        {
            console.log('no');
        }
    });
</script>

但是我无法弄清楚 $。cookieBar 正在做什么?

答案 1 :(得分:1)

  1. 检查滚动并做一些你想要的事情

    window.onscroll = function(e){
    //滚动窗口时调用 }

  2.   

    如果您想要调用它,每次用户滚动时都会调用此方法   只有一次然后做一些trict

    1. 制作隐藏字段

    2. 现在,当滚动方法调用

      时,将此隐藏字段的值设置为true

      window.onscroll = function(e) {   if(document.getElementById(“ScrollOnceCheck”)。value ==“false”)   {    document.getElementById(“ScrollOnceCheck”)。value =“true”;    //更新cookie   } }