2

ボディ スクロールバーで特定の divのbackgroundPosition - #simpleBG - を下にスクロールすると右に、上にスクロールすると左に移動する方法を考え出そうとしています。

jQuery(document).ready(function ($) {

      $('#simpleBG').scroll(function(event, direction) {
     if (direction === 'down') {
        $('#simpleBG').animate({backgroundPosition: '-=20px 0px'})
     }
     else {
        $('#simpleBG').animate({backgroundPosition: '0px 0px'})
     }        }); 

});

背景アニメーションを可能にする backroundpos.js があります。ここで正しいロジックと構文を使用しているかどうかはわかりません。

4

1 に答える 1

1

試してみてください:

   var $simpleBG = $("#simpleBG"),
       $root = $(".wrapper");

   $root.on("scroll", (function(e,d) {
       if(d=='down'){
          $simpleBG.animate{backgroundPosition: '-=20px 0px'})
       }
       else {
          $simpleBG.animate({backgroundPosition: '0px 0px'})
       }        
   });

.wrapper は外側の要素のクラスです。

ただし、スクロール要素の方向についてはよくわかりませんが、方向の別の解決策は次のとおりです。

var tempScrollTop, currentScrollTop = 0;

   $("#div").scroll(function(){

   currentScrollTop = $("#div").scrollTop();

   if (tempScrollTop < currentScrollTop )
   //scrolling down
   else if (tempScrollTop > currentScrollTop )
   //scrolling up

tempScrollTop = currentScrollTop;
}
于 2012-10-11T08:30:57.320 に答える