2013-03-15 94 views
2

我做了一個div寬度100%和高度寬度* .1在jquery中。準確的數字。高度

我設法擴大高度,儘管比例但我無法設法擴大它準確。

我其實想把它擴大到400px,可能嗎?

這裏是我的代碼:http://jsfiddle.net/2drYk/3/

* 
{ 
margin:0; 
padding:0; 
border:0 
} 

.container 
{ 
    width:100%; 
    background:black; 

} 

<figure class="container"> 
</figure> 

$('.container').height($(this).width()*0.1); 
    var toggleCheck =0; 
$('.container').click(function(){ 

    if(toggleCheck ==1){ 
     $(this).stop().animate({height: ($(this).height()-$(this).width()*0.1)}); 
     toggleCheck = 0; 
    }else{ 
$(this).stop().animate({height: ($(this).width()*0.1 + $(this).height())}); 
     toggleCheck = 1; 
    } 
}); 
+1

我不明白:如果要擴大到400像素,爲什麼煩心事服用計算?可能我不明白你的問題? – Sunyatasattva

+0

是[this](http://jsfiddle.net/2drYk/6/)你想要什麼? – pktangyue

回答

4

LIVE DEMO

var $cont = $('.container'), 
    init_size = $cont.width() * 0.1, 
    c = 0,    // counter 
    s = [400,init_size]; // sizes array 

$cont.height(init_size); 

$cont.click(function(){ 
    $(this).stop().animate({ height: s[c++%2] }); 
}); 
+0

使用'animate'很好,很好的演示。對於非數學類型,請解釋'C++%2'來替代高度值。 –

+0

+1優雅的解決方案。 s [C++%2]是黃金。 –

+1

'C++'後增加'c'(返回原始值,然後遞增)。 '%2'取這個值並將其限制爲值'0'和'1'。該值用作從數組's'訪問的索引。從's'返回的值被分配給'height'。一舉一舉。 '%'被稱爲[模數(或餘數)運算符](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Arithmetic_Operators) –

0
$(this).stop().animate({height: 400}); 
1

,如果你只是想通過400像素成長的容器,你可以使用下面的JS:

var container = $('.container'); 
container.height(container.width()*0.1); 
var originalHeight = container.height(); 
var newHeight = 400 + originalHeight; 

container.click(function(){ 
    if($(this).height() == originalHeight){ 
    $(this).stop().animate({height: newHeight}); 
    }else{ 
    $(this).stop().animate({height: originalHeight}); 
    } 
}); 

http://jsfiddle.net/2drYk/16/