Monday, September 3, 2012

jQuery Parallax Background

jQuery Paralax Background

HTML

<section> ... </section>

CSS

body {
  background:black url('img/bg-1.png') repeat-y 0 0;
  margin:0 0;
  padding:0 0;
}

section {
  background:transparent url('img/bg-2.png') repeat-y 0 0;
  padding:50px;
}

jQuery

$(function() {
    var $window = $(window),
        $body = $('body'),
        $section = $('section');
    $window.on("scroll", function() {
        var distance = $(this).scrollTop();
        $body.css('background-position', '0 -' + distance + 'px');
        $section.css('background-position', '0 -' + distance * 2 + 'px');
    });
});

Lihat Demo

Pembaharuan: Versi JavaScript Murni

Menggunakan pageYOffset sebagai pengganti $(window).scrollTop():

(function() {
    var bgLayer = document.getElementsByTagName('div');
    window.onscroll = function() {
        var top = pageYOffset;
        document.body.style.backgroundPosition = '0 ' + (top*2) + 'px';
        bgLayer[0].style.backgroundPosition = '0 ' + (top*0.5) + 'px';
        bgLayer[1].style.backgroundPosition = '0 ' + (top*1.5) + 'px';
        // Dan seterusnya...
    };
})();

Lihat Demo

Labels: , ,

10 Comments:

At Monday, September 3, 2012 at 10:02:00 AM GMT+7, Anonymous Anonymous said...

fungsinya buat apa mas? ga ada penjelasannya :(

 
At Monday, September 3, 2012 at 10:22:00 AM GMT+7, Blogger MUX SPARROW said...

Bedanya ama background biasa apa, Mas? :\

 
At Monday, September 3, 2012 at 11:22:00 AM GMT+7, Blogger Taufik Nurrohman said...

bangbungg & MUX: Coba gulung layarnya pelan-pelan dan perhatikan efek gerakan latar di bagian samping kanan :)

 
At Monday, September 3, 2012 at 12:24:00 PM GMT+7, Anonymous Anonymous said...

oh ngerti2 background yang hitamnya lebih lambat saat di scroll :o

 
At Monday, September 3, 2012 at 7:48:00 PM GMT+7, Blogger Putra said...

dari blogku nih paralax scroll kayaknya haha :D
liat nih mas bayu, terasa lebih smooth..

 
At Monday, September 3, 2012 at 9:31:00 PM GMT+7, Blogger Taufik Nurrohman said...

Kelihatannya kasar, soalnya ukuran background yang Saya pakai kecil. Kalau ukuran background diperbesar hasilnya akan lebih halus ⇒ http://jsfiddle.net/tovic/ZNZUM/4/
Selain itu, arah paralax di blogmu terbalik. Mungkin itu cuma gaya, tapi Saya lebih suka yang natural :)

 
At Wednesday, April 9, 2014 at 10:29:00 PM GMT+7, Blogger Penggemar Rahasia said...

kalau gambarnya ingin diatur posisi nya bagaimana mas,

supaya berada dikanan,
soalnya aku sudah mencoba mengatur posisi nya pada background:transparent url('img/bg-2.png') repeat-y 0 0; menjadi background:transparent url('img/bg-2.png') repeat-y 660px 0; namun ketika scroll aku turunkan kebawah, posisinya kembali lagi ke pojok kiri.

 
At Friday, April 18, 2014 at 6:29:00 PM GMT+7, Blogger Taufik Nurrohman said...

$body.css('background-position', '660px -' + distance + 'px');
$section.css('background-position', '660px -' + (distance * 2) + 'px');

 
At Saturday, April 19, 2014 at 9:01:00 AM GMT+7, Blogger Penggemar Rahasia said...

terima kasih

 
At Monday, June 8, 2015 at 7:10:00 AM GMT+7, Anonymous Anonymous said...

Cukup menarik, mungkin bisa menambahkan script smooth scroll biar efek parallax lebih hidup

 

Post a Comment

<< Home