2013-07-11 55 views
0

嘿,我有一些代碼設置元素style.width,height和位置 但它不工作,我認爲這是因爲它不是在頭部,但我想要改變CSS就像一個mouseclick事件,所以標籤將滑出和東西,但我寧願不使用jquery有沒有辦法做到這一點?在jquery加載後更改dom元素的位置

編輯:確定,所以㈣得到了寬度和高度的問題確切解決它似乎沒有反應,當我嘗試,並將其定位

這裏是我的代碼

for (i=1; i<=tab_array.length-1; i++) 
{ 

    if (i==3) 
    { 
     document.getElementById("_"+i).style.cssText='height:'+Math.floor(p(100,gheight))+'px;'+ 
           'width:' +Math.floor(p(80,gwidth))+'px;'+ 
           'background:black;'+ 
           'postion:absolute;'+ 
           'left:'+Math.floor(p(tab_array.across,gwidth)-gwidth)+'px;' 
           ; 
    } 

    else 
    { 
     document.getElementById("_"+i).style.cssText='height:'+Math.floor(p(80,gheight))+'px;'+ 
           'width:' +Math.floor(p(80,gwidth))+'px;'; 
    }    
} 

回答

0

試着這麼做:

function E(e){ 
    return document.getElementById(e); 
} 
function changeSize(id, height, width, interval){ 
    var es = E(id).style, h = parseInt(height), w = parseInt(width), f = Math.floor(h/w), n = parseInt(interval), i = 0; 
    var sit = setInterval(function(){ 
    i++; es.cssText = 'height:'+i*f+'px; width:'+i+'px;'; 
    if(i === w){ 
     es.cssText = 'height:'+h+'px; width:'+w+'px;'; clearInterval(sit); 
    } 
    }, n); 
} 
changeSize('box', 100, 50, 20); 

對於工作示例,請訪問http://jsfiddle.net/PHPglue/X6TMv/。我沒有添加緩動,儘管jQuery處理得非常有效。我讓代碼從高處開始讀取字符串或數字。

+0

我真的不明白我的目的或間隔? @PHPglue –

+0

'SetInterval()'只是繼續調用一個作爲String或匿名函數傳遞的函數。 '我'必須增加,所以尺寸增加。只調用'setInterval()'本身不會自動增加'i'。注意'i ++;'? 'i'在'i = 0'開始的'changeSize()'函數中被作用域。 'interval'是我存儲在'n = parseInt(interval);'中的毫秒或秒/ 1000。我認爲你沒有看到滾動條。見http://www.w3schools.com/jsref/met_win_setinterval.asp。請注意,'self'是'window',這是隱含的。 – PHPglue

+0

我的意思是我只是想改變的價值,我有一個外部函數做增量,我試過'object.style.cssText ='height:'+ Math.floor(p(100,gheight))+'px;' '和那工作正常,除了它不工作''左:'出於某種原因我有一個外部的CSS文件,說明'position:absolute;'以及@PHPglue –