在加载和滚动时触发我的功能

时间:2013-08-05 14:13:14

标签: jquery

我已经编写了一个脚本,在滚动时更改了对象yPos,这对我来说非常合适,但我希望代码在加载时运行,因为元素在加载时位置错误。 / p>

所以这是完整的代码:

$(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 });

在我的页面加载时运行(所以重新安装等)

任何帮助都很棒

由于

工作代码:

//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 });
            });
        });
    });
});

1 个答案:

答案 0 :(得分:3)

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

$(document).ready(function(){
  ...
  $(window).scroll(); // This will trigger scroll event
});