Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Увеличение высоты DIVа по нажатию ссылки (https://javascript.ru/forum/misc/14388-uvelichenie-vysoty-diva-po-nazhatiyu-ssylki.html)

bruklin24 14.01.2011 03:12

Увеличение высоты DIVа по нажатию ссылки
 
Вот в чем проблема:помогите плиз!
Имеется 2 дива. Внутренний содержит текст и изображения,причем он больше внешнего!в "данный" момент видна некоторая часть текста. Хочу при нажатии на ссылку чтобы раздвигался внешний див до тех пор пока есть контент во внутреннем!(т.е. стала видна вся информация в этом блоке) И при повторном нажатии на "эту же " ссылку блок возвращался в исходное положение.

Изменить высоту блока получилось сделать ТАК:
<script type="text/javascript">

$("#podrobnee").click(function(){
$("#divForm").animate({ height: "60%", }, 1500);

});

</script>
Эксперементировал со значением "height" и вот что то получилось... а вот с возвратом блока туговато..(сам только начинаю вникать в скрипты...

ksa 14.01.2011 10:41

Цитата:

Сообщение от bruklin24
при повторном нажатии на "эту же " ссылку блок возвращался в исходное положение

То "исходное положение" нужно либо знать... Либо где-то хранить...

bruklin24 14.01.2011 11:01

Так вот же... высота исходного блока(divForm) =220px.Хочу при нажатии на ту же ссылку("podrobnee") блок подымался "вверх"(к исходному состоянию)

ksa 14.01.2011 13:16

Цитата:

Сообщение от bruklin24
высота исходного блока(divForm) =220px

Т.е. она постоянная и тебе известна заранее?

Если так:
- Читай размер дива
- Если он не равен 220px - делай таковым. Если равен - делай как делал ранее

ksa 14.01.2011 13:34

Как вариант...

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script>
function Go() {
	var o = document.getElementById('divForm')
	var h=(o.style.height)? parseInt(o.style.height): 100
	o.style.height=((h==100)? 200: 100) + 'px'
}
</script>
<style>
#divForm {
	width: 200px;
	height: 100px;
	overflow: hidden;
	border: 1px solid;
}
#podrobnee {
	width: 100px;
	height: 150px;
	margin: 10px;
	background-color: red;
}
</style>
</head>
<body>
<div id='divForm'>
	<div id='podrobnee'>
	</div>
</div>
<hr />
<input type='button' value='Go' onclick='Go()' />
</body>
</html>

bruklin24 18.01.2011 02:00

Вложений: 1
Да но... мне нужно чтобы див раздвигался в зависимости от кол-ва содержащегося в нем контента!(и не больше! ) Информация будет разных объемов и поэтому это должно как то просчитываться. А по второму щелчку принимал исходнуюю высоту height=220px;

Вот примерно намалевал;

ksa 18.01.2011 09:29

Цитата:

Сообщение от bruklin24
Вот примерно намалевал

А может пора тестовый пример ваять? Не ленись... :nono:

bruklin24 18.01.2011 12:11

Да я бы рад, да толком нечего предложить. Как я понял нужно сначала считать высоты 2х дивов!

<script>

function setHeight() {
var b1 = document.getElementById('divForm');
var b2 = document.getElementById('Description');
if (!b1 || !b2) return;
var h1 = b1.offsetHeight;
var h2 = b2.offsetHeight;

</script>
затем сравнить высоты, если неравны то уровнять.

Направьте на нужный лад пожалуйста! Помогите разобраться (я новичок, в коде js чувствую себя пока не уверенно )

ksa 18.01.2011 16:37

Цитата:

Сообщение от bruklin24
толком нечего предложить

Например деньги... :) Они есть у тебя?

Danilkin500 28.05.2014 11:19

Привет всем!!! Придерживаюсь к данному вопросу по поводу высоты! Помогите доработать предложенный выше код так чтобы открытие блока формировалось относительно содержимого. Огромное спасибо за помощь заранее!


Часовой пояс GMT +3, время: 20:09.