Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2015, 01:06
Интересующийся
Отправить личное сообщение для Anshag Посмотреть профиль Найти все сообщения от Anshag
 
Регистрация: 20.07.2015
Сообщений: 17

Настройка спойлера.
Суть вопроса такова. Есть код:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <title>Спойлеры</title>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $('.spoiler_links').click(function(){
 $(this).parent().children('div.spoiler_body').slideToggle('slow');
 return false;
 });
});
</script>
<style type="text/css">
.spoiler_body {
    display:none;
    text-align: center;
}
.spoiler_links {
    display: block;
    font-size: 36pt;
    text-align: center;
    text-decoration: none;
    color: #000;
    cursor:pointer;
}
.spoiler_links:hover {
    color: #060;
}
</style>
</head>
<body>
<div>
    <a href="" class="spoiler_links">Название спойлера</a>
 
    <div class="spoiler_body">
        <img src="http://www.blogcdn.com/massively.joystiq.com/media/2011/10/facepalm.jpg" alt="" />
    </div>
</div>
</body>
</html>


Нужно сделать следующие изменения:
Добавить настраиваемый отступ подчеркивания и изменить его цвет (цвет подчеркивания не должен совпадать с цветом текста)
Так же добавить функцию изменения цвета текста при наведении, и при раскрытом виде спойлера.
Вся эта конструкция должна выравниваться посередине экрана.

Пробовал разные варианты, но каждый раз одно из условий не соблюдалось. То перенос слов образовывался, то подчеркивание не реагировало на настройки,, то появлялось выравнивание по левому краю, то еще что то. В итоге налепил восьмиэтажный код, который, ко всему прочему, и работал неправильно.
Показываю Вам базовый вариант. Надеюсь умные люди подскажут.
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2015, 08:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Anshag
Добавить настраиваемый отступ подчеркивания и изменить его цвет (цвет подчеркивания не должен совпадать с цветом текста)
Так же добавить функцию изменения цвета текста при наведении, и при раскрытом виде спойлера.
Вся эта конструкция должна выравниваться посередине экрана.
Картинкой челе покажи...
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2015, 15:37
Интересующийся
Отправить личное сообщение для Anshag Посмотреть профиль Найти все сообщения от Anshag
 
Регистрация: 20.07.2015
Сообщений: 17

http://wwwwww.ucoz.net/index/sss/0-9
как тут. только выравнивание названия спойлера по центру. и убрать подчеркивание пустого места.
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2015, 15:43
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от Anshag
Нужно сделать следующие изменения:
Добавить настраиваемый отступ подчеркивания и изменить его цвет (цвет подчеркивания не должен совпадать с цветом текста)
Так же добавить функцию изменения цвета текста при наведении, и при раскрытом виде спойлера.
Вся эта конструкция должна выравниваться посередине экрана.
я вас плохо понял, и поэтому получилось вот так:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <title>Спойлеры</title>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $('.spoiler_links').click(function(){
 $(this).parent().children('div.spoiler_body').slideToggle('slow');
 return false;
 });
});
</script>
<style>
  .buttons-container {
    position: relative;

}

.button1, .button2{
    box-sizing: border-box;
    width: 150px;
    height: 40px;
    text-decoration: none;
    background-color: #ccc;
    color: #08c;
    position: absolute;
    padding-top:11px;
    text-align: center;
}

.button1 {
    top: 20px;
    left:50px;
}

.button2 {
    top: 80px;
    left:50px;
}
.spoiler_body {
    display: none;
    text-align: center;
}
.container {
    text-align: center;
    margin-bottom: 10px;
}

.line{
    display: inline-block;
    width: 530px;
    height: 0;
    border-bottom: 1px solid #999;
    transition: all 1s linear;
}

.spoiler_links:hover+.container>.line{
    border-bottom: 1px solid #0A5C0E;
}

.spoiler_links {
    display: block;
    font-size: 36pt;
    text-align: center;
    text-decoration: none;
    color: #000;
    cursor:pointer;
    transition:all 1s linear;
}
.spoiler_links:hover {
    color: #060;
}
</style>
</head>
<body>
<div>
  <div class="buttons-container">
    <a href="#" class="button1">Увеличить отступ</a>
    <a href="#" class="button2">Уменьшить отступ</a>
  </div>
  
    <a href="" class="spoiler_links">Название спойлера</a>
    <div class="container">
      <div class="line"></div>
    </div>
    <div class="spoiler_body">
        <img src="http://www.blogcdn.com/massively.joystiq.com/media/2011/10/facepalm.jpg" alt="" />
    </div>
</div>
<script>
  document.getElementsByClassName('button1')[0].onclick = function (){
    var width =document.getElementsByClassName('line')[0].style.width || getComputedStyle(document.getElementsByClassName('line')[0]).width;
    console.log(width);
    width = parseInt(width) + 10+'px';
    console.log(width);
    document.getElementsByClassName('line')[0].style.width = width;
  }
  document.getElementsByClassName('button2')[0].onclick = function (){
    var width =document.getElementsByClassName('line')[0].style.width || getComputedStyle(document.getElementsByClassName('line')[0]).width;
    console.log(width);
    width = parseInt(width) - 10+'px';
    console.log(width);
    document.getElementsByClassName('line')[0].style.width = width;
  }
  </script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2015, 19:50
Интересующийся
Отправить личное сообщение для Anshag Посмотреть профиль Найти все сообщения от Anshag
 
Регистрация: 20.07.2015
Сообщений: 17

Спасибо большое.
При наведении образуется подчеркивание текста "название спойлера". Я имел в виду увеличение отступа именно этого подчеркивания, а не создание отдельного отступа.
Ответить с цитированием
  #6 (permalink)  
Старый 21.07.2015, 08:16
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Anshag
Я имел в виду увеличение отступа именно этого подчеркивания, а не создание отдельного отступа.
Именно "этот отступ" никак по другому не нарисуется.
Если тебе нужен отступ у подчеркивания - придется использовать border-bottom у какого-то элемента.
Ответить с цитированием
  #7 (permalink)  
Старый 21.07.2015, 10:51
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от Anshag
Я имел в виду увеличение отступа именно этого подчеркивания, а не создание отдельного отступа.
ну значит надо немного подвинуть блок с border-bottom немного выше.
Ответить с цитированием
  #8 (permalink)  
Старый 21.07.2015, 17:03
Интересующийся
Отправить личное сообщение для Anshag Посмотреть профиль Найти все сообщения от Anshag
 
Регистрация: 20.07.2015
Сообщений: 17

Сообщение от EmperioAf Посмотреть сообщение
ну значит надо немного подвинуть блок с border-bottom немного выше.
Куда именно? Можете в коде показать?
Ответить с цитированием
  #9 (permalink)  
Старый 21.07.2015, 17:23
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от Anshag Посмотреть сообщение
Куда именно? Можете в коде показать?
шутите?)
добавить в CSS-коде в .line{...} или в .container{..} свойство margin-top: -8px;
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2015, 09:48
Интересующийся
Отправить личное сообщение для Anshag Посмотреть профиль Найти все сообщения от Anshag
 
Регистрация: 20.07.2015
Сообщений: 17

Разобрался)
Не подскажите, что добавить в код, что бы спойлер открывался поверх всех элементов, находящихся ниже его, а НЕ отодвигал их?

Последний раз редактировалось Anshag, 15.08.2015 в 13:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заголовок открытого спойлера был скрыт и наоборот soloveff jQuery 2 08.08.2013 22:18
Настройка Sphinx, поиск по координатам greatilya Серверные языки и технологии 1 16.12.2012 18:01
Настройка iframe demoniqus Общие вопросы Javascript 1 11.12.2012 11:35
настройка привилегий фф Zzet Firefox/Mozilla 1 04.03.2010 15:12
Скрипт спойлера Jackky Общие вопросы Javascript 2 09.05.2009 02:45