Your background-position
is set to center center
by your default CSS, but then as soon as you start scrolling, it is set to 50% 50px
... So the jump comes from the vertical position changing from centered to calculated.
You can approach this from two ways, either just set your initial css to be:
background: url(../images/backgruond.jpg) no-repeat 50% 50px fixed;
because you know that that's the position it gets set to as you start to scroll,
Or, just call your update()
function on pageload in addition to on scroll, therefore allowing the position to be calculated immediately.
For example:
$(window).bind('scroll', update);
update();