2017-03-13 138 views
0

我的目標是製作一個網頁,其中包含文本等多個div,在鼠標x和y上移動。它應該看起來像鼠標x和y上的視差效果。我遇到的所有視差插件都是基於圖像的,所以它們不適用於div。 我自己寫了一個js,但div的頁面跳過所有頁面,沒有css可以讓它保持原位。也許有更多js經驗的人知道我可以如何解決這個問題。在代碼下面。希望大家聽到你的聲音。移動多個div的x和y在鼠標x,y在js

HTML:

<div class = "main" id ="scene"> 

    <div class = "container" id = "home"> 

     <div class = "kop "> HOME </div> 

     <div class = "brood "> 
     <p> 
      Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend sapien. Vestibulum purus quam, scelerisque ut, mollis sed, nonummy id, metus. Nullam accumsan lorem in dui. Cras ultricies mi eu turpis hendrerit fringilla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In ac dui quis mi consectetuer lacinia. 
     </p> 
     </div> 

    </div> <!-- end container home --> 


    <div class = "container" id = "visie"> 

     <div class = "kop"> VISIE </div> 
     <div class = "brood"> 
     <p> 
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. 
     </p> 
     </div> 

    </div> 
</div> 

CSS:

.container{ 
    margin-right: 20%; 
    margin-top: 200px; 
    margin-bottom: 200px; 
    margin-left: 20%; 

    font-size: 16px; 

    background-color: yellow; 

} 

.kop{ 
    font-family: GTWBold; 

} 

.brood{ 
    font-family: GTWMedium; 

} 


#home{ 
    margin-top: 20px; 

} 


#visie{ 
    margin-right: 40%; 

} 

JS:

$('#scene2').mousemove(function(e){ 
    var x = -(e.pageX + this.offsetLeft)/20; 
    var y = -(e.pageY + this.offsetTop)/20; 

    var h = document.getElementById('home'); 
    h.style.position = "absolute"; 
    h.style.left = x+'px'; 
    h.style.top = y+'px'; 
    h.style.width = "500px"; 

}); 
+0

我猜你指的是'#visie'移動你的時候'在'場景'上徘徊?這是因爲'position:absolute'將它從正常流程中解脫出來。 – Jorg

回答

0

position: absolute去除元件的正常流動,這會導致其他一切轉移的元素。此外,在渲染後設置width會導致一些變化,因爲這裏也是在操縱顯示的#visie的高度。

試試這個:

$('#scene').mousemove(function(e){ 
    var x = -(e.pageX + this.offsetLeft)/20; 
    var y = -(e.pageY + this.offsetTop)/20; 

    var h = document.getElementById('home'); 
    h.style.position = "relative"; 
    h.style.left = x+'px'; 
    h.style.top = y+'px'; 
}); 

另外這裏:https://jsfiddle.net/pqur9wxa/1/

在這裏,他們都是運動:https://jsfiddle.net/pqur9wxa/2/

+0

謝謝!這是我需要的。我會在完成後發佈網址,以防您感興趣。 – Bart

+0

當然,好奇看看視差文本框如何工作:) – Jorg

+0

@美好的!感謝讓我知道它是如何發展的:D讓它在移動設備上工作將是我首先要做的事情。可能會根據屏幕大小禁用全屏分頁。您是否打算在頁眉上放置視差效果? – Jorg