1

我编写了一个脚本,在滚动时更改了对象 yPos,这对我来说非常完美,但我希望代码也能在加载时运行,因为加载时元素位于错误的位置。

所以这里是完整的代码:

$(document).ready(function(){
$(window).bind("scroll", function(event) {
        $(".think:in-viewport").each(function() {
            $window = $(window);
            $elementOffset = $('.think').offset().top;
            console.log($elementOffset);
            $('html.no-touch div[data-type="backgroundthink"]').each(function(){
                var $bgobj = $(this);
                $(window).scroll(function() {
                    var yPos = -(($window.scrollTop() - $elementOffset) / $bgobj.data('speed'));
                    console.log(yPos);
                    var coords = '50% '+ yPos + 'px';
                    $bgobj.css({ backgroundPosition: coords });
                });
            });
        });
    });
});

在这个功能内我想

 var yPos = -(($window.scrollTop() - $elementOffset) / $bgobj.data('speed'));
                    console.log(yPos);
                    var coords = '50% '+ yPos + 'px';
                    $bgobj.css({ backgroundPosition: coords });

在我的页面加载时运行(所以 reresh 等)

任何帮助都很好

谢谢

工作代码:

//Viewprt trigger
$(document).ready(function(){
    $(window).bind("scroll", function(event) {
        $(".think:in-viewport").each(function() {
            $window = $(window);
            $elementOffset = $('.think').offset().top;
            $('html.no-touch div[data-type="backgroundthink"]').each(function(){
                var $bgobj = $(this);
                var yPos = -(($window.scrollTop() - $elementOffset) / $bgobj.data('speed'));
                console.log(yPos);
                var coords = '50% '+ yPos + 'px';
                $bgobj.css({ backgroundPosition: coords });
            });
        });
    });
});
4

1 回答 1

4

忽略您在滚动事件处理程序中附加了滚动事件的事实。您可以在页面加载后触发scroll事件:

$(document).ready(function(){
  ...
  $(window).scroll(); // This will trigger scroll event
});
于 2013-08-05T14:15:34.197 回答