2017-01-03 1 views
0

페이지를 아래로 스크롤 할 때 이미지가 위로 스크롤되기를 원합니다. 그 일은 아주 쉽게 할 수 있지만 문제는 jQuery에서 이미지의 CSS, 특히 transform 속성을 변경한다는 것입니다. 하지만 이미지를 가운데 정렬하기 위해 이미 transform 속성을 사용하고 있습니다.스크롤 할 때 div 위치 변경

코드 : 그래서

.planeImg { 
    position: absolute; 
    display: block; 
    left: 50%; 
    top: 50%; 
    transform: translate(-50%, -50%); 
    background: url("../images/plane.png"); 
    background-size: contain; 
    background-repeat: no-repeat; 
    z-index: 99; 
    height: 80px; 
    width: 300px; 
} 

$(window).on("scroll", function() { 
    var wScroll = $(this).scrollTop(); 
    $('.planeImg').css({'transform' : 'translate(0px, -'+ wScroll /2 +'%)'}) 
}); 

나는 이미지를 정렬 중앙에 transform 속성을 사용하고 있기는 jQuery를 내 이미지의 위치를 ​​buggering있다.

+1

당신은 수평이 자바 스크립트에 0px''로 변환 설정하고 있습니다. 수평 중심 맞춤을 유지하기 위해 '-50 %'로 대체 할 수 있습니다. 수직 센터링도 문제입니까? –

+0

transform 속성이 아닌 이미지를 배치 할 때 위쪽/왼쪽/아래/오른쪽 (또는 여백 등)을 사용해야합니다. – vicgoyso

+0

고마워요. @JonUleis – RhysE96

답변

1

wScroll의 계산을 변경하여 이미지 스크롤이 페이지 스크롤링을 따르도록했습니다. 이게 도움이되는지 알려주세요.

Fiddle

자바 스크립트

$(window).on("scroll", function() { 
    var wScroll = ($(this).scrollTop()/$(window).height()) + 50; 
    $('.planeImg').css({ 
    'transform': 'translate(-50%, -' + (wScroll) + '%)' 
    }) 
}); 

CSS

.planeImg { 
    position: absolute; 
    display: block; 
    left: 50%; 
    top: 50%; 
    transform: translate(-50%, -50%); 
    background: url("https://www.google.be/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"); 
    background-size: contain; 
    background-repeat: no-repeat; 
    z-index: 99; 
    height: 80px; 
    width: 300px; 
} 
+0

그 방법도 효과가 있습니다. 수직이 아닌 이미지를 수평으로 움직이는 방법이 있습니까? – RhysE96

+0

@ RhysE96이게 뭐야? https://jsfiddle.net/gktt7mrg/ – user286089