Создать ответ 
Несколько спойлеров в одну строку с показом содержимого на всю ширину
Автор Сообщение
Rootwar Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Apr 2015
Сообщение: #21
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Первый код подошел, спасибо, большое! Happy
11.04.2015 23:26:08
Найти все сообщения Цитировать это сообщение
logispart Не на форуме
Рядовой
*

Сообщений: 2
У нас с: Jul 2015
Сообщение: #22
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Во-первых хотелось бы сказать Admin большое спасибо, исполняет каждую просьбу пользователей - Спасибо, такое редко встретишь.
И у меня тоже просьба, при строчном расположении блоков происходит следующие:
Заголовки спойлера располагаются на одном уровне, но при раскрытии спойлера заголовки спойлера спускаются до уровня содержимого спойлера. Как сделать, чтобы заголовки спойлера всегда оставались на своем месте?

Код:
<style type="text/css">
.blok {
    display: inline-block;
}
</style>

Код:
<div class="blok">
<a href="" class="spoiler_links">Спойлер №1</a>
<div class="spoiler_body">
Здесь ваш скрытый текст
</div>
</div>


<div class="blok">
<a href="" class="spoiler_links">Спойлер №1</a>
<div class="spoiler_body">
Здесь ваш скрытый текст
</div>
</div>

<div class="blok">
<a href="" class="spoiler_links">Спойлер №1</a>
<div class="spoiler_body">
Здесь ваш скрытый текст
</div>
</div>
24.07.2015 15:12:45
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #23
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Выровняйте их по верхнему краю родительского блока...

Просто добавьте в CSS классу blok следующее: vertical-align: top;
24.07.2015 19:35:11
Найти все сообщения Цитировать это сообщение
logispart Не на форуме
Рядовой
*

Сообщений: 2
У нас с: Jul 2015
Сообщение: #24
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
(24.07.2015 19:35:11)Admin писал(а):  Выровняйте их по верхнему краю родительского блока...

Просто добавьте в CSS классу blok следующее: vertical-align: top;

Вот спасибо, все оказалось гораздо проще, чем я думал.
27.07.2015 11:20:01
Найти все сообщения Цитировать это сообщение
Gun-gel Не на форуме
Рядовой
*

Сообщений: 1
У нас с: Nov 2015
Сообщение: #25
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Здравствуйте, подскажите пожалуйста как к этому скрипту сделать чтобы по нажатию на спойлер он оставался активным? Я нашел код в комментариях для другого спойлера - Собственный спойлер с плавным открытием
Код:
$(document).ready(function(){ $(window.location.hash).show();
$('.spoiler_links').click(function(){
$('.spoiler_links').removeClass('bg_color');
if ($(this).next('.spoiler_body').css("display")=="none") {
$('.spoiler_body').hide('normal');
$(this).addClass('bg_color').next('.spoiler_body').toggle('normal');
}
else $('.spoiler_body').hide('normal');
return false;
});
});

Но никак не получается его применить для этого спойлер где спойлеры в одну строку идут. Пробовал классы менять ".spoiler_body" на .spoiler_text но он не хочет работать. Подскажите что я делаю не так?
07.11.2015 10:24:11
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #26
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Что значит "оставался активным"?

Или Вы имеете ввиду что к спойлеру, по которому кликнули последним должен примениться особый стиль?

JS код, который Вы привели, взят из комментария №1964 к теме Обновленный скрипт спойлера с плавным открытием и скрытием содержимого.
А строчку $(window.location.hash).show(); Вы взяли из комментария №1998 к теме Собственный спойлер с плавным открытием и скрытием содержимого.

Данная строчка предназначалась для решения следующей задачи:
Цитата:... чтобы при переходе на этот самый id (якорь) с другой страницы (оглавления на том же сайте) спойлер, скрывающий под собой статью с этим id (и только он), открывался автоматом без клика, т.е. страничка выходила бы с 9-ю статьями под спойлерами и с одной открытой.

Если Вам все же нужно, например, выделять открытый последним спойлер, то добавьте на страничку CSS стиль .bg_color с нужным оформлением. Из JS кода удалите $(window.location.hash).show();.

В результате должно получиться примерно следующее:
Код:
<style type="text/css">
.spoiler_body { display:none; overflow:hidden; font-style:italic; }
.spoiler_links { cursor:pointer; font-weight:bold; text-decoration:underline; }
.blok { vertical-align:top; display:inline-block; }
.bg_color { background-color:#F0F0F0; }
</style>

<div class="blok">
<a href="" class="spoiler_links">Спойлер №1</a>
<div class="spoiler_body">
Здесь ваш скрытый текст
</div>
</div>


<div class="blok">
<a href="" class="spoiler_links">Спойлер №2</a>
<div class="spoiler_body">
Здесь ваш скрытый текст
</div>
</div>

<div class="blok">
<a href="" class="spoiler_links">Спойлер №3</a>
<div class="spoiler_body">
Здесь ваш скрытый текст
</div>
</div>

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_links').click(function(){
$('.spoiler_links').removeClass('bg_color');
if ($(this).next('.spoiler_body').css("display")=="none") {
$('.spoiler_body').hide('normal');
$(this).addClass('bg_color').next('.spoiler_body').toggle('normal');
}
else $('.spoiler_body').hide('normal');
return false;
});
});
</script>

И на будущее желательно приводить полный код (JS, CSS и HTML) с как можно более подробным описанием, что нужно изменить или добавить.
07.11.2015 18:53:09
Найти все сообщения Цитировать это сообщение
Феня Не на форуме
Ефрейтор
*

Сообщений: 10
У нас с: Dec 2015
Сообщение: #27
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Огромное спасибо admin за код спойлера в одну строку. Искал уже пару месяцев что похожее, и нашел единственный Ваш вариант в сети))

Однако хотелось бы еще пару фишек к Вашему коду (ваш первый пост):
1) Эффект слайдера между спойлерами (как в галереях, смена содержимого) [боковые стрелочки].
2) Функция закрытия спойлера по крестику (как в модальных окнах; в правом или левом верхнем углу).
3) И еще я заметил, что спойлеры открываются, и содержимое меняется, но они не закрываются, если нажимать на "Спойлер №X".

С Уважением ваш читатель Smile
06.12.2015 15:05:53
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #28
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Было бы неплохо, если бы Вы выложили полный код, на котором Вы остановились, т.к. в теме есть различные дополнения и изменения, и не совсем ясно, как код сейчас выглядит у Вас.
06.12.2015 15:13:43
Найти все сообщения Цитировать это сообщение
Феня Не на форуме
Ефрейтор
*

Сообщений: 10
У нас с: Dec 2015
Сообщение: #29
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
ну он не особо поменялся Smile добавил ток в таблицу сами спойлеры и поменял эффекты появления/скрытия содержимого.

Код:
<link rel="stylesheet" href="http://tm-dwarfs.clan.su/info/html_css/akkaunty.css">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_links').click(function(){
$(this).parent().children('.spoiler_text').toggle(false);
  $(this).parent().children('.spoiler_text').html( $(this).next().html() ).fadeIn(900);;
  return false;
});

$('.spoiler_links, .spoiler_text').parent().mouseleave(function(){
    $(this).children('.spoiler_text').fadeOut(900);
});
});
</script>


<style type="text/css">
.spoiler_body, .spoiler_text {display:none;}
.spoiler_links {cursor:pointer;}
</style>

<table align="center" class="st_t1"><!--st_t1-->
<tbody align="center">

    <tr>
        <td>
        
            <div>
                <a href="" class="spoiler_links">Спойлер №1</a>
                <div class="spoiler_body">
                    <div class="header t_3">Содержимое спойлера №1</div>
                </div>

                <a href="" class="spoiler_links">Спойлер №2</a>
                <div class="spoiler_body">
                <div class="header t_3">Содержимое спойлера №2</div>
                </div>

                <a href="" class="spoiler_links">Спойлер №3</a>
                <div class="spoiler_body">
                <div class="header t_3">Содержимое спойлера №3</div>
                </div>

                <div class="spoiler_text"></div>
            </div>
        
        </td>
    </tr>
    
</tbody>
</table>

ой( немного не то скинул((
Код:
<link rel="stylesheet" href="http://tm-dwarfs.clan.su/info/html_css/akkaunty.css">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_links').click(function(){
$(this).parent().children('.spoiler_text').toggle(false);
  $(this).parent().children('.spoiler_text').html( $(this).next().html() ).fadeIn(900);;
  return false;
});

$('.spoiler_links, .spoiler_text').parent().mouseleave(function(){
    $(this).children('.spoiler_text').fadeOut(900);
});
});
</script>


<style type="text/css">
.spoiler_body, .spoiler_text {display:none;}
.spoiler_links {cursor:pointer;}
</style>

<table align="center" class="st_t2"><!--st_t2-->
<tbody align="center">

    <tr>
        <td>
        
            <div>
                <a href="" class="spoiler_links">Спойлер №1</a>
                <div class="spoiler_body">
                    <div class="header t_1">Содержимое спойлера №1</div>
                </div>

                <a href="" class="spoiler_links">Спойлер №2</a>
                <div class="spoiler_body">
                <div class="header t_2">Содержимое спойлера №2</div>
                </div>

                <a href="" class="spoiler_links">Спойлер №3</a>
                <div class="spoiler_body">
                <div class="header t_3">Содержимое спойлера №3</div>
                </div>

                <div class="spoiler_text"></div>
            </div>
        
        </td>
    </tr>
    
</tbody>
</table>
(Последний раз сообщение было отредактировано 06.12.2015 в 15:50:46, отредактировал пользователь Феня.)
06.12.2015 15:45:55
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #30
RE: Несколько спойлеров в одну строку с показом содержимого на всю ширину
Ну как бы слайдер и спойлер это совсем разные вещи и для разных целей. Тут совсем не ясно как их объединять.

Принципиальной разницы в приведенных Вами кодах не вижу. Вы лучше опишите как можно подробнее задачу в целом, может данный код Вам совсем и не подходит и будет проще делать новый.
06.12.2015 20:19:39
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru