2011-11-03 57 views
0

那麼,什麼問題?我有一個「位置:絕對」屬性的div。現在 - 我想知道 - 每當鼠標移動時,我可以使用jQuery(或簡單的JavaScript)移動這個div嗎?這只是一個不斷增加的動作,只能在X軸上進行。因此 - 想象一下瀏覽器窗口的左側和右側。當 - 例如 - 鼠標光標位於左半部分時 - 此div始終緩慢向右移動;而且當光標越來越靠近左邊時 - div的速度會增加一點。我正在嘗試在Three.js引擎上學習WebGL。讓我告訴你一個例子:jQuery和WebGL - 在鼠標移動時移動div

看看這裏 - http://hadyk.pl/webgl/(可能不工作在IE)

看星星是移動的樣子,當你移動光標 - 我要實現與相同背景div。

感謝

編輯:好吧,我得到它的工作。看升級的鏈接。代碼:

腳本:

$('#background').css({backgroundPosition: "0px bottom"})

function moveRight() { 
       $('#background').stop().animate({right: "1500px"}, 
       {duration:80000}); 
} 
function moveLeft() { 
       $('#background').stop().animate({right: "-1500px"}, 
       {duration:80000}); 
} 
function onStop() { 
       $('#background').stop(); 
} 

HTML:

<div id="background"></div> 
<div id="left" onMouseOver="moveLeft()" onMouseOut="onStop()"></div> 
<div id="right" onMouseOver="moveRight()" onMouseOut="onStop()"></div> 

CSS:

#background { 
      background: #000 url(images/moon.png) no-repeat; 
      position:absolute; 
      bottom:0; 
      right:0; 
      width:411px; 
      height:404px; 
      z-index:-2; 
} 
#left { 
      position:absolute; 
      left:0; 
      bottom:0; 
      width:30%; 
      height:100%; 
      z-index:99 
} 
#right { 
      position:absolute; 
      right:0; 
      bottom:0; 
      width:30%; 
      height:100%; 
      z-index:99 
} 

回答

0

我這裏得到一個錯誤:

function moveBackground() { 
    $('#background').css({'right':(parseInt($('#background').css('right')) + (e.pageX*0.001))+'px'}); 
window.setTimeout(moveBackground(), 50); 
} 

你在函數參數忘了e

function moveBackground(e) { 
    $('#background').css({'right':(parseInt($('#background').css('right')) + (e.pageX*0.001))+'px'}); 
window.setTimeout(moveBackground(), 50); 
} 
+0

好吧,我糾正它 - 做類似的東西(但它不工作):$(「畫布」)鼠標移動(函數moveBackground(e){ \t如果(例如X>(window.innerWidth/2)) ').css('right'))+(e.pageX * 0.0008))+'px'}); \t \t} \t \t如果(e.pageX <(window.innerWidth/2)){ \t \t $( '#背景')。CSS({ '右' :(parseInt函數($( '#背景') .css('right')) - (e.pageX * 0.0008))+'px'}); \t \t} \t}); – Irminsul

+0

在你的功能減速中刪除'moveBackground'。它應該是'mousemove(function(e){'。另外,你的第二個'if'語句真的是多餘的。用'else'子句代替 – Blender

+0

好吧,我用不同的方法來發現插件 - http://plugins.jquery.com/project/backgroundPosition-Effect。請再看看我的第一篇文章中的鏈接,現在它效果更好 - 但仍然有兩個問題:1.爲什麼它在Firefox中速度太慢, Chrome?2.我不能讓它在兩邊工作 - 它只向左移動,我錯過了什麼?條件是否錯誤 - if(mouseX>(window.innerWidth/2)){'? – Irminsul