javascript - jQuery css() 不在条件语句中工作

标签 javascript jquery css

我正在创建一个简单的视差滚动器,它将图像缩放到屏幕宽度,设置一个滚动包装器,该包装器设置为所有图像的缩放高度,并查看 scrollTop 值以使用 jQuery 的 css 设置图像的顶部位置().这是主要功能:

function positionSlides() {
    sT = $(window).scrollTop();
    $('div.slide img').each(function(){
        wp = $(this).attr('data-waypoint');
        if(sT >= wp){
            $(this).css({'top' : wp, 'border' : '1px solid red'});
            //console.log(sT + ':sT, ' + wp + ':wp');
        }
        else{
            $(this).css({'top' : ((wp-sT)/4)+sT, 'border' : '1px solid blue'});
        }
    });
}

边框颜色的设置是为了测试哪个条件语句通过。

positionSlides() 在滚动时被调用

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

我的问题是当 sT >= wp 时,css 属性“top”没有设置为 wp 的值。它被设置为似乎是 else 语句传递的最后一个值,该值略小于 wp。但与此同时,'border' : '1px solid red' 通过相同的 if 语句正确设置。

为什么没有在语句的 if 部分设置 'top' 属性?

最佳答案

第一次使用 wp 时它不起作用,它是一个字符串。第二次,当你做wp-sT时,它是一个整数或 float 。如果您将第一个版本转换为数值,它将起作用。

var wp = parseInt($(this).attr('data-waypoint'),10);

关于javascript - jQuery css() 不在条件语句中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348398/

相关文章:

jquery - 如何更改 2 个不同的 Bootstrap Modals 的背景颜色?

javascript - 将此颜色匹配游戏更改为 js 和 jquery 中的图像匹配

javascript - 使用 byref 传递的数组

html - 如何使用html和css使文本位于图像的右侧

javascript - 无法使用 Microsoft Graph API 和 Angular 4 更新个人资料图片

javascript - Vue3 中的动态标题与 vue-meta 组合 API

javascript - 为什么元素对象不能像document.body一样通过标签名来选择?

css - extract-text-webpack-plugin 错误 npm install

css - 在响应式 CSS 中使用像素宽度

javascript - 三种js更新纹理生成Canvas的最佳性能方式