Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

[скрипт] сокращаем полное описание фильма (больше / меньше).

Тема в разделе "Хаки DLE", создана пользователем Rockem, 15 июн 2016.

15.06.16 в 13:35
10.07.21 в 00:16
92
8.561
8
  1. TopicStarter Overlay
    Rockem

    Rockem Бывалый

    Регистрация:
    30 янв 2016
    Сообщения:
    274
    Лучших ответов:
    0
    Рейтинги:
    +201 / 0 / -0
    Всем привет!
    Уже не впервой когда я на этом форуме виже такие вопросы "как сделать кнопку Больше / меньше"... Сегодня такая кнопка мне самому понадобилась, так что я решил с вами поделится.
    Может кому-то пригодится.

    CSS код:
    Код:
    .full-desc{overflow:hidden;position:relative;transition:height .2s}
    .text-less{margin-bottom:0!important}
    .text-less:before{content:'';position:absolute;z-index:1;bottom:0;left:0;right:0;height:120px;pointer-events:none;background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#fff 100%)}
    .show-more{margin:0 0 20px;font-size:12px;font-weight:700}
    .show-more span{display:inline-block;cursor:pointer;text-decoration:underline;color:#f0542e}
    

    JS код:
    Код:
    $(document).ready(function() {
    $('.full-desc').ShortText({
      height: '200',
      text: 'Больше'
    });
    });
    
    jQuery.fn.ShortText = function(e) {
    var e = jQuery.extend({
      height: "200",
      text: "Больше"
    }, e);
    return this.each(function() {
      var i = $(this),
      t = i.height();
      t > e.height && i.addClass("full-desc text-less").height(e.height).after('<div class="show-more"><span>' + e.text + "</span></div>"), $(".show-more span").click(function() {
      var i = $(this),
      s = $(this).parent().prev(".full-desc");
      ah = parseInt(s.css("height"), 10), ah == t ? s.css({
      height: e.height
      }) : s.css({
      height: t
      }), i.text(i.text() == e.text ? "Меньше" : e.text), s.toggleClass("text-less")
      })
    })
    };
    

    В fullstory.tpl ставите там где хотите вывести описание.
    HTML:
    <div class="full-desc clearfix">{full-story}</div>
    
    Демо: можно посмотреть тут.

    Автор скрипта:
    @redissx.
     
    #1 Rockem, 15 июн 2016
    Последнее редактирование: 15 июн 2016
    • Нравится Нравится x 8
  2. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.299
    Лучших ответов:
    31
    Рейтинги:
    +3.898 / 96 / -0
    А как же указать автора @redissx ?
     
    • Нравится Нравится x 1
  3. TopicStarter Overlay
    Rockem

    Rockem Бывалый

    Регистрация:
    30 янв 2016
    Сообщения:
    274
    Лучших ответов:
    0
    Рейтинги:
    +201 / 0 / -0
    Я не знаю кто автор js скрипта, поскольку сам скрипт я вырез из найденного мной в интернете сайта.
     
  4. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.299
    Лучших ответов:
    31
    Рейтинги:
    +3.898 / 96 / -0
    Скрипт похож на тот что писал он, так что сори если преувеличиваю и т.п
     
  5. redissx

    redissx Бывалый

    Регистрация:
    23 сен 2015
    Сообщения:
    828
    Лучших ответов:
    7
    Рейтинги:
    +996 / 165 / -0
    Да, из filmax, просто в нем сжатый код, я выкладывал несжатый. И это wTextSlicer, патентую :D эту тему по поиску, наверное, проще найти будет.
     
  6. redissx

    redissx Бывалый

    Регистрация:
    23 сен 2015
    Сообщения:
    828
    Лучших ответов:
    7
    Рейтинги:
    +996 / 165 / -0
    Ну... ТС тут наменял, привязал только к full-desc, универсальность утеряна o_O
     
  7. aeneas

    Забанен

    Регистрация:
    12 мар 2016
    Сообщения:
    11.489
    Лучших ответов:
    10
    Рейтинги:
    +4.043 / 208 / -0
    текст под спойлером как понял не будет индексироваться...
    если нет, то на**й такое ненужно совершенно
     
  8. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.299
    Лучших ответов:
    31
    Рейтинги:
    +3.898 / 96 / -0
    лол. кек. хех. мда.
     
  9. aeneas

    Забанен

    Регистрация:
    12 мар 2016
    Сообщения:
    11.489
    Лучших ответов:
    10
    Рейтинги:
    +4.043 / 208 / -0
    что ты кхекаешь как всегда чудик, это вопрос был
     
  10. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.299
    Лучших ответов:
    31
    Рейтинги:
    +3.898 / 96 / -0
    индексирует все там
     
  11. Skuchniy

    Забанен

    Регистрация:
    26 май 2016
    Сообщения:
    1.079
    Лучших ответов:
    0
    Рейтинги:
    +363 / 0 / -0
    Так если код страницы открыть, там будет полный текст.:)
     
    • Нравится Нравится x 1
  12. aeneas

    Забанен

    Регистрация:
    12 мар 2016
    Сообщения:
    11.489
    Лучших ответов:
    10
    Рейтинги:
    +4.043 / 208 / -0
    гуд тогда, спс
    я кстати искал и не раз, гуглил находил варианты, тут на форуме и на вебмастерсе спрашивал, так и ни один мухомор не ответил ничего как сделать нормально )
     
  13. Skuchniy

    Забанен

    Регистрация:
    26 май 2016
    Сообщения:
    1.079
    Лучших ответов:
    0
    Рейтинги:
    +363 / 0 / -0
    По сути это плагин Readmore.js, в поиске достаточно информации и примеров, устанавливается легко.
     
  14. aeneas

    Забанен

    Регистрация:
    12 мар 2016
    Сообщения:
    11.489
    Лучших ответов:
    10
    Рейтинги:
    +4.043 / 208 / -0
    в ДЛЕ не ставяться плагины ))
     
  15. redissx

    redissx Бывалый

    Регистрация:
    23 сен 2015
    Сообщения:
    828
    Лучших ответов:
    7
    Рейтинги:
    +996 / 165 / -0
    Обновил, добавил возможность сворачивать несколько блоков на одной странице (ну мало ли есть маньяки сворачивания :D) и указание текста сворачивания.

    1. В ваш css файл добавить
    Код:
    .slice {overflow:hidden; position:relative; transition:height .2s;}
    .slice-masked:before {content:'';position:absolute;z-index:1;bottom:0px;left:0;right:0;height:120px;pointer-events:none;
    background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, #fff 100%);
    background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 100%);}
    .slice-btn {margin:20px 0;  font-weight:700;}
    .slice-btn span {display:inline-block; cursor:pointer; text-decoration:underline; color:#f0542e;}
    2. В ваш js файл в конец добавить
    Код:
    $(document).ready(function(){
       $('.movie-desc').wTextSlicer({
        height: '200',
        textExpand: 'Развернуть сюжет',
        textHide: 'Свернуть сюжет'
       });
    });
    
    /*!  wTextSlicer v 1.01 */
    
    jQuery.fn.wTextSlicer = function(options){
       var options = jQuery.extend({
        height: '200',
        textExpand: 'expand text',
        textHide: 'hide text'
        },options);
       return this.each(function() {
         var a = $(this),
           h = a.outerHeight();
         if ( h > options.height ) {
           a.addClass('slice slice-masked').attr('data-height',h).height(options.height).after('<div class="slice-btn"><span>'+options.textExpand+'</span></div>');
         };
         var bt = $(this).next('.slice-btn').children('span');
         bt.click(function() {
           var ah = parseInt(a.css("height"), 10);
           ah == h ? a.css({'height':options.height}) : a.css({'height':h});
           bt.text(bt.text() == options.textExpand ? options.textHide : options.textExpand);
           a.toggleClass('slice-masked');
         });
       });
    };
    
    3. Как пользоваться.
    Пусть у вас есть <div class="movie-desc">МЫ ХОТИМ ЭТО СВЕРНУТЬ</div>.
    Тогда
    Код:
    $(document).ready(function(){
       $('.movie-desc').wTextSlicer({
        height: '200',
        textExpand: 'Развернуть сюжет',
        textHide: 'Свернуть сюжет'
       });
    });
    где 200 - высота, при которой свернется.

    Пусть у нас два блока <div class="movie-desc">МЫ ХОТИМ ЭТО СВЕРНУТЬ</div> и <div class="movie-lines">МЫ ХОТИМ ЭТО СВЕРНУТЬ ТОЖЕ</div>.
    Тогда
    Код:
    $(document).ready(function(){
       $('.movie-desc').wTextSlicer({
        height: '200',
        textExpand: 'Развернуть сюжет',
        textHide: 'Свернуть сюжет'
       });
       $('.movie-lines').wTextSlicer({
        height: '100',
        textExpand: 'Показать больше',
        textHide: 'Спрятать'
       });
    });
    
     
    • Нравится Нравится x 6
  16. Skuchniy

    Забанен

    Регистрация:
    26 май 2016
    Сообщения:
    1.079
    Лучших ответов:
    0
    Рейтинги:
    +363 / 0 / -0
    Да js это, который работает на dle, сам лично ставил :p
     
  17. kinoliux

    kinoliux Бывалый

    Регистрация:
    26 мар 2016
    Сообщения:
    323
    Лучших ответов:
    1
    Рейтинги:
    +67 / 1 / -0

    У меня не работает. DLE 11.0 уже пол дня мучаюсь.
     
  18. yuris

    yuris Местный

    Регистрация:
    21 сен 2015
    Сообщения:
    1.508
    Лучших ответов:
    1
    Рейтинги:
    +620 / 12 / -0
    Дык всем давно известно, что, DLE 11.0 версии полный отстой, прокаженная! Делай откат на 8-ку и все моментально заработает!
     
    • Нравится Нравится x 2
  19. kinoliux

    kinoliux Бывалый

    Регистрация:
    26 мар 2016
    Сообщения:
    323
    Лучших ответов:
    1
    Рейтинги:
    +67 / 1 / -0
    11.0 мне уже мозг вынесла, чтоб что то поставить надо пол дня с бубном плясать
     
  20. kinoliux

    kinoliux Бывалый

    Регистрация:
    26 мар 2016
    Сообщения:
    323
    Лучших ответов:
    1
    Рейтинги:
    +67 / 1 / -0
    два часа провозился чтоб сделать поиск с выводом картинки
     
Похожие темы
  1. Rustavelli92
    Ответов:
    17
    Просмотров:
    1.513
  2. geony
    Ответов:
    22
    Просмотров:
    3.267
  3. Sam_Morrou
    Ответов:
    3
    Просмотров:
    686
  4. Sam_Morrou
    Ответов:
    3
    Просмотров:
    2.420
Загрузка...
Яндекс.Метрика