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