停止事件并将变量设置为默认值

stop event and set variable to default

本文关键字:设置 默认值 变量 事件      更新时间:2023-09-26

以下问题。我有一个长滚动页面,如果每个div在带有inview.js 的视口中,它会向每个div添加类

var $div1 = $('#div1');
var $div2 = $('#div2');
//.....
var only_once = 0;
$('#div1, #div2, #div3, #div4, #div5').bind('inview', function (event, visible) 
{
    if (visible == true) {
        $(this).addClass("inview");
    } else {
        $(this).removeClass("inview");
    }
});

当它添加类时,我正在执行一些事件和一个if条件,如果inview第一次被激发,然后停止,则应该发生一些事情。我试着把only_once换成1。

if($div1.hasClass("inview")){   
    // here some functions...
    if (only_once == 0) {
        $('.float-second').css('left', 0);
        $('.float-second').css('top', 0);
        only_once = 1;
    } 
    if($div2.hasClass("inview")){   
        // here some functions...

        if (only_once == 1) {
            $('.float-third').css('left', 0);
            $('.float-third').css('top', 0);
            only_once = 2;
        } 
        // and this for the other divs too

问题是,当我这样做的时候,当网站在中间或底部加载时,它不会启动,因为if条件需要第一个事件,因为它之前的值。希望你明白我的意思,我怎样才能做好这项工作?

我想我理解你遇到的问题。您可以使用检查页面的滚动量

$(document).scrollTop();

如果它大于你决定的某个值,你可以调用你需要调用的函数,否则如果它在页面顶部加载,你的插件会为你做这件事。