Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.10.2012, 19:52
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Смена класса блока по нажатию на кнопку
Хочется на jquery. Задача такая:

Миничат в левой колонке сайта, по нажатию на кнопку "зафиксировать" меняет position:relative и становится fixed, при чем желательно, чтобы fixed не относительно родителя, а относительно всего документа. И таким образом прилипает к верхней части экрана. Кнопка меняется на "открепить" и по её нажатию блок возвращается в первоначальное положение. И куки не помешают, чтобы при обновлении не обнулялось.

Нужна именно смена стиля, т.к. блоки сворачиваемые, и если чат не прикреплен, то при его сворачивании блоки под ним естественно подтягиваются. А когда он фиксед, то он вообще оттуда уходит и блоки нижние занимают его место. Ну и неплохо было бы все это плавненько.

Спасибо за помощь.

Последний раз редактировалось noid, 11.10.2012 в 02:45.
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2012, 10:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от noid
желательно, чтобы fixed не относительно родителя, а относительно всего документа
Тут "желательно" не подходит, ибо!
Цитата:
fixed
По своему действию это значение близко к absolute, но в отличие от него привязывается к указанной свойствами left, top, right и bottom точке на экране и не меняет своего положения при прокрутке веб-страницы. Браузер Firefox вообще не отображает полосы прокрутки, если положение элемента задано фиксированным, и оно не помещается целиком в окно браузера. В браузере Opera хотя и показываются полосы прокрутки, но они никак не влияют на позицию элемента.
http://htmlbook.ru/css/position
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2012, 10:54
Аватар для Margarita
Аспирант
Отправить личное сообщение для Margarita Посмотреть профиль Найти все сообщения от Margarita
 
Регистрация: 14.09.2012
Сообщений: 83

http://jsfiddle.net/fS5cZ/6/
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2012, 14:09
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Сообщение от Margarita Посмотреть сообщение
http://jsfiddle.net/fS5cZ/6/
Спасибо, в принципе оно. Но я уже битый час бьюсь, что-то не срабатывает http://memkey.net/chat/d.html и оригинал тоже http://memkey.net/chat/a.html. Не меняется click.

И, если можно, прикрутить бы куки. У меня и так уже используется jquery.cookie.js

И плавный переход бы от fixed к нормальному состоянию. Animate наверное, да?
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2012, 17:04
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Нарыл скрипт простенький, с куками, только кнопка после обновления не запоминает свой 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?
Ответить с цитированием
  #6 (permalink)  
Старый 13.10.2012, 13:28
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

addClass()
removeClass()
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2012, 21:01
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Всем спасибо, вариант от Margarita забрал.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка дополнительных новостей по нажатию на кнопку RAZVOR jQuery 2 07.06.2012 23:48
Появление блока при нажатии на кнопку nik_neman jQuery 2 02.03.2012 09:06
Получить все элементы строки таблицы по нажатию на кнопку ansi_str Events/DOM/Window 2 01.03.2012 16:58
Автоматическая смена высоты блока maximale Элементы интерфейса 2 29.01.2012 13:20
Навесить обработчиком на кнопку метод класса TheArtem Элементы интерфейса 2 10.05.2011 22:39