2013-06-12 41 views
3

只是一個非常簡單的問題,但我很新的JavaScript.I'm試圖添加一個margin-top財產div使用JS在document.readywindow.resize,但沒有運氣。簡單的jquery css保證金不工作

function cent() { 
    var blockheight = $("#block").height(); 
    var margintop = (blockheight/-2); 
    $block.css("margin-top", margintop);     
}; 

$(document).noConflict(); 
$(document).ready(cent); 
$(window).resize(cent); 
+2

檢查您的JavaScript控制檯的錯誤。我認爲:'$ block'不應該工作。使用'$(「#block」)。css(...)' – x4rf41

+0

試試用這個:http://jsfiddle.net/njs2p/ – Joe

+0

你的權利!這個$塊是從以前的嘗試中遺留下來的。即使有$(「#block」).css它仍然不起作用 – user2478466

回答

1

編輯:

嘿,我把你最近的jsfiddle並做了一些變化,這是現在的工作,它把它轉換成原來的一半高度。看一看,看看你是否需要這些。

對不起,我的代碼沒有保存。這是我的jsfiddle更新:

parseInt()加入保證高度的結果您收到來自.height()能夠在您的部門將被解析,以及一個匿名函數包裝的$(document)$(window)內部分的整數呼籲cent();

function cent() { 
    var $block = $("#block"), 
     margintop = parseInt($block.height()/-2); 
    console.log('called'); 
    $('#block').css("margin-top", margintop); 
}; 

// $(document).noConflict(); 
$(document).ready(function(){ 
    cent(); 
}); 
$(window).resize(function(){ 
    cent(); 
}); 

更改

$block.css("margin-top", margintop); 

$('#block').css("margin-top", margintop); 
+0

完美。謝謝。完美的作品 – user2478466

+0

有點衝突問題。詳細如下。有什麼想法嗎? – user2478466

0

它看起來像你的語法是有點過。將$block更改爲$('#block')

這個jsFiddle應該可以幫你解決問題。

0

幾樣東西,

你在哪裏定義變量$block?你需要把你想修改成變量,這樣的元素...

var $block = $('#block'); 

cent功能定義塊的高度之前。

其次

你需要打電話給你cent功能後,該文件已準備就緒。

$(document).ready(function(){ 
    cent(); 
}); 

resize相同...所以整體代碼應該看起來像。

$(document).ready(function(){ 
    cent(); 
    $(window).resize(function(){ 
     cent(); 
    }); 
}); 

,如果你不清楚如何記錄準備工作,我建議您閱讀的jQuery API,它真的有用和用戶友好。

0

更改:

$block.css("margin-top", margintop); 

要:

$('#block').css("margin-top", margintop); 

,改變函數調用的方法:

$(document).noConflict(); 

    //on DOM ready 
    $(document).ready(function() { 
     cent(); 
    }); 

    //on window resize 
    $(window).resize(function() { 
     cent(); 
    }); 
0

需要設置去哪個單位。 。height()將返回一個數字,而css屬性margin-top需要知道哪個單位。

var margintop = (blockheight/-2) + 'px'; 
0

我用Dylan N的代碼和所有工作在jsfiddle但在我的整個頁面,有一些衝突。我已縮小到下面的代碼。任何人都知道衝突可能是什麼?

var $j = jQuery.noConflict(); 
jQuery(function ($j) { 

var image_slides = []; 

image_slides.push({ 
    image: 'img/background.jpg' 
}) 


$j.supersized({ 



    // Individual links for each slide (Options: false, 'num', 'name', 'blank') 

    min_width: 0, 
    min_height: 0, 
    vertical_center: 1, 
    horizontal_center: 1, 
    fit_always: 0, 
    fit_portrait: 1, 
    fit_landscape: 0, 
    slides: image_slides, 
}); 
}); 
+0

這是一個完全不同的問題,應該放在另一個問題上,而不是作爲你之前問題的答案。但是,嘗試將var $ j更改爲var j並使用$(j).supersized。 –