Смена класса блока по нажатию на кнопку
Хочется на jquery. Задача такая:
Миничат в левой колонке сайта, по нажатию на кнопку "зафиксировать" меняет position:relative и становится fixed, при чем желательно, чтобы fixed не относительно родителя, а относительно всего документа. И таким образом прилипает к верхней части экрана. Кнопка меняется на "открепить" и по её нажатию блок возвращается в первоначальное положение. И куки не помешают, чтобы при обновлении не обнулялось. Нужна именно смена стиля, т.к. блоки сворачиваемые, и если чат не прикреплен, то при его сворачивании блоки под ним естественно подтягиваются. А когда он фиксед, то он вообще оттуда уходит и блоки нижние занимают его место. Ну и неплохо было бы все это плавненько. Спасибо за помощь.:) |
Цитата:
Цитата:
|
|
Цитата:
И, если можно, прикрутить бы куки. У меня и так уже используется jquery.cookie.js И плавный переход бы от fixed к нормальному состоянию. Animate наверное, да? |
Нарыл скрипт простенький, с куками, только кнопка после обновления не запоминает свой value, как поправить? http://memkey.net/chat/b.html
<script>
$(document).ready(function() {
var box_class = $.cookie('box_class');
if(box_class) {
$('div#box').attr('class', box_class);
}
$("#run").click(function() {
$("div#box").toggleClass("block");
$.cookie('box_class', $('div#box').attr('class'));
});
});
</script>
<div style="width:800px;" id="content">
<div style="float:left; width:800px; height:300px; background:#99CCCC">Хэдэр</div>
<div style="float:left; width:400px;">
<!--start_chat-->
<div id="box" class="blockoff">Чат<br /><br /><br />
<input type="button" id="run" value="прикрепить" onClick="this.value=this.value=='прикрепить'?'отлепить':'прикрепить';">
</div>
<!--end_chat-->
<div><img src="img2.jpg" /></div>
</div>
<div style="float:right; width:400px;">
<div><img src="img1.jpg" /></div>
</div>
</div>
И вопрос с плавным переходом остаётся на повестке дня. Может через какой-нибудь fadein/fadeout? |
addClass()
removeClass() |
Всем спасибо, вариант от Margarita забрал.
|
| Часовой пояс GMT +3, время: 10:52. |