javascript - 提高 JavaScript 转换的性能

标签 javascript performance scroll transition

我有一个 JavaScript 驱动的视差 slider ,改编自本教程 (http://tympanus.net/codrops/2011/01/03/parallax-slider/),还有一个小脚本,它在滚动到某个点后使 slider 图像淡出。

这是脚本:

    $(document).ready(function() {

        $(window).scroll(function () {
            var $slider = $('.pxs_slider');
            var sTop = $('body').scrollTop();
            var sTop_ff = $('html').scrollTop();
            var opacity = 1;

            if(sTop < 40) {
                opacity = 1;
                if(sTop_ff < 40) {
                    opacity = 1;
                } else {
                    opacity = 0;
                }
            } else  {
                opacity = 0;
            }

            $slider.css('opacity', opacity);
        });
  });

一切正常,但在此过渡期间滚动变得非常缓慢。但是,我发现它只在所有浏览器的 Chrome 中才真正有这个问题。 Firefox 中没有性能下降。

我可以尝试更有效的方法来实现这种效果吗?

最佳答案

缓存 $('.pxs_slider') 所以每次滚动条移动时都不会查询是大的:

$(document).ready(function() {
    var $slider = $('.pxs_slider');

    $(window).scroll(function() {
        var sTop = $('body').scrollTop();
        var sTop_ff = $('html').scrollTop();
        var opacity = 1;

        if(sTop < 40) {
            opacity = 1;
            if(sTop_ff < 40) {
                opacity = 1;
            } else {
                opacity = 0;
            }
        } else  {
            opacity = 0;
        }

        $slider.css('opacity', opacity);
    });
});

此外,我认为 $(window).scrollTop() 是正确的方法:

$(document).ready(function() {
    var $slider = $('.pxs_slider');

    $(window).scroll(function() {
        $slider.css('opacity', $(window).scrollTop() < 40 ? 1 : 0);
    });
});

关于javascript - 提高 JavaScript 转换的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188884/

相关文章:

iphone - UITableView滚动问题

javascript - 如何通过val()获取innerHTML

javascript - 如何使2种颜色代表来自csv的d​​3.js中的正面和负面词云

javascript - AngularJS Controller 中基于值的重定向

python - python中小写字母排序

javascript - 向下滚动页面到下一个元素

php - 在网络上显示 pdf 但无法下载

performance - 进度报告

performance - symfony 性能问题

javascript - 使用 jQuery 将类添加到窗口垂直滚动中的不同 Div