15 апреля 2008 ~ 23 Комментария

Делаем простейший спойлер

Простите, но не смог придумать как назвать спойлер на более русский лад, если есть идеи пишите.

Суть спойлера состоит в том что бы разворачивать полный текст из анонса, будет проще если вы увидите это на примере.

Реализация спойлера

Способ реализации прост, jquery скрывает нужный нам блок с текстом, вместо него ставиться ссылка при нажатии на которую текст будет появляться.

Вот заготовка с текстом:

<p>Это основная часть текста<span class="spoiler">, а эта часть скрыта.</span></p>

Подключаем библиотеку «jquery» и настраиваем ее действия:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() { 

    $("span.spoiler").hide();

     $('<a class="reveal">Читать дальше&gt;&gt;</a> ').insertBefore('.spoiler');

    $("a.reveal").click(function(){
        $(this).parents("p").children("span.spoiler").fadeIn(2500);
        $(this).parents("p").children("a.reveal").fadeOut(600);
    });

});
</script>

Готово! Всем приятного вечера ^_^

Посмотреть пример спойлера

Скачать пример спойлера

Первоисточник

23 Комментария для “Делаем простейший спойлер”

  1. PuMi 16 апреля 2008 at 1:01 Permalink

    Ой как классно, как раз он мне только что и понадобился.
    Осталось понять как умное php обрезание сделать.

  2. PuMi 16 апреля 2008 at 1:30 Permalink

    Написал, скрипт обрезает 1 предложение. Легко можно изменить на обрезание по новой строки.

    $count_arr) $max_chars2 = $count_arr;
    else $max_chars2 = $max_chars;
    for ($i = 0; $i<$max_chars2; $i++) {
    $comment .= $arr[$i].».»;
    }
    if ($max_chars2 != $count_arr) $comment_content .= «…»;
    print $comment; //Обрезание
    for ($i =$max_chars ; $i

  3. Владимир 16 апреля 2008 at 1:56 Permalink

    $(this).parents(»p»).children(»a.reveal»).fadeOut(600);

    $(this).fadeOut(600); // должно работать.

  4. PuMi 16 апреля 2008 at 3:15 Permalink

    Написал, скрипт обрезает 1 предложение. Легко можно изменить на обрезание по новой строки.
    http://pukas.ru/explode.txt

  5. SciFi 16 апреля 2008 at 14:10 Permalink

    Только хорошо бы иметь возможность обратно свернуть.

  6. Я собственной персоной 16 апреля 2008 at 21:55 Permalink

    Только хорошо бы иметь возможность обратно свернуть.

    Ну это легко делается по этому же принципу ;-)

  7. Minras 17 апреля 2008 at 2:53 Permalink

    спасибо, забавный пример :)

  8. Бутёк 19 апреля 2008 at 19:56 Permalink

    :-) — вот он, простейший спойлер!

  9. Бутёк 19 апреля 2008 at 19:56 Permalink

    Извиняюсь, [font color="white"]:-)[/font]

  10. assiduus 20 апреля 2008 at 1:43 Permalink

    Ну а что насчет оратного сворачивания спойлера?

  11. Flyer 30 июля 2008 at 6:04 Permalink

    Может кто-то напишет что надо изменить в скрипте чтобы обратно сворачивалось при нажатии на ссылку с class=»reveal»?

  12. Андрей 2 сентября 2008 at 6:41 Permalink

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

  13. Viper 26 сентября 2008 at 6:51 Permalink

    Может кто-то напишет что надо изменить в скрипте чтобы обратно сворачивалось при нажатии на ссылку с class=»reveal»?

    Ну а что насчет оратного сворачивания спойлера?

    заместо fadeIn(Out) как у мну сделано

    bla|bla

    $(».slidedown»).click (function(){$(»#t_video»).slideToggle(»normal»);});

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

    примерно вот так $(»#mydiv»).load(»/ajaxtest.php»);

  14. максим 23 мая 2009 at 16:02 Permalink

    у меня не получается поставить спойлер..

  15. Kosmo 20 октября 2009 at 23:25 Permalink

    Может кто-то напишет что надо изменить в скрипте чтобы обратно сворачивалось при нажатии на ссылку с class=”reveal”?

    Ну а что насчет оратного сворачивания спойлера?

    заместо fadeIn(Out) как у мну сделано
    bla|bla
    $(”.slidedown”).click (function(){$(”#t_video”).slideToggle(”normal”);});

    Я не разбираюсь в скриптах, распиши, пожалуйста, поподробнее, что и куда надо вставить, чтобы все заработало. Буду премного благодарен!!

  16. Chi 5 ноября 2009 at 5:30 Permalink

    Действительно будьте добры подробнее как сделать что бы обратно сворачивалось.

  17. Дмитрий 26 ноября 2009 at 1:00 Permalink

    В html.

    function toggleMe(a){
    var e=document.getElementById(a);
    if(!e)return true;
    if(e.style.display==»none»){
    e.style.display=»block»
    } else {
    e.style.display=»none»
    }
    return true;
    }

    Надпись в спойлере!

  18. Kosmo 29 ноября 2009 at 6:58 Permalink

    Ах да, совсем забыл. В конце каждого скрываемого текста необходимо поставить следующую конструкцию:

  19. Kosmo 29 ноября 2009 at 7:10 Permalink

    Сделал кнопку скрытия:

    http://www.mexanik.su/SpoilerRevealerbeta.rar

    Но пока остался 1 минус – некорректно работает при 2х и более спойлеров на странице. Как исправить пока не знаю.
    В чем разница с первоисточником: в теле html документа изменено содержимое тега , в конце каждого стиха добавлены теги (для кнопки «скрыть») и, соответственно, в style.css добавлен стиль на новую кнопку.

  20. Rexedead 8 января 2010 at 1:14 Permalink

    без jquery:

    function blarg(id) {
    var obj = document.getElementById(id);
    if( obj.style.display == «none» ) { obj.style.display = «block»; } else { obj.style.display = «none»; }
    }

    Природа 1
    галерея фоток

    Природа 2
    галерея фоток

  21. Rexedead 8 января 2010 at 1:23 Permalink

    без jquery:
    http://shorttext.com/wmhm8gfrtv

  22. Александер) 3 сентября 2010 at 15:14 Permalink

    [Spoiler]
    ГГ… Спасибо))

  23. Grawl 5 сентября 2010 at 22:29 Permalink

    Вот тут(http://szenprogs.ru/blog/spojler_na_osnove_jquery/2009-10-28-71) спойлер лучше. Закрывается при нажатии на ту же ссылку, от которой и открывается.


Оставить комментарий