Показать сообщение отдельно
  #29 (permalink)  
Старый 22.02.2016, 14:46
Аватар для rikitiki
Интересующийся
Отправить личное сообщение для rikitiki Посмотреть профиль Найти все сообщения от rikitiki
 
Регистрация: 10.05.2013
Сообщений: 20

Огромная благодарность за помощь!
Внёс исправления по части ссылок. Теперь на каждый товар только одна ссылка.
Для сравнения, создал копию страницы, в которой осуществляется скрытие чисто на CSS (фиксированная на две строки высота блока + overflow:hidden), то-есть без применения скрипта:
Всё на весь экран CSS
Разумеется, в этом случае, троеточия отсутствуют, потому трудно разобрать, где полный заголовок, а где его часть.
Скопировал по новой ваш изменённый код из поста 19. Работает заметно быстрей, но хуже чем на CSS и к тому же, кое-где, изредка, выводит в три строки, а не в две. На старом скрипте такого не было.
Чтобы не перепутать, уточнил заголовок страницы со скриптом. Теперь она называется:
Всё на весь экран jQuery
Ниже, на всякий случай, вдруг я что перепутал, привожу ваш код, скопированный со своего сайта:
/* Скрипт подрезки строк. Первая часть */
<script type="text/javascript">
(function($) {
    $.fn.correctLines = function(options) {
        var o = jQuery.extend({
            maxLine: 5,
            afterLength: " ... ",
            fullText: false,
            moreText: "\u00bb\u00bb",
            lessText: "\u00ab\u00ab",
            classNew: "more",
            resize: true
        }, options);

          var elem = this;
          var res = $(elem).data("resize");
          if(!res && o.resize) {
            var timer;
            $(elem).data("resize", true);
            $(window).resize(function() {
                window.clearTimeout(timer);
                timer = window.setTimeout(
                function() {
                $("." + o.classNew, elem).remove();
                $(elem).correctLines(o);
                }, 300
                )

            })
        }
        return this.each(function(index, self) {
            $(self).find("*:last").length && (self = $(self).find("*:last"));
            var txt = $(self).data("text") ||
                $(self).data("text", $(self).html().split(" ")).data("text");
            $(self).html(txt[0]).css({
                "height": "auto"
            });
            var lastHeight = $(self).outerHeight();
            var k = 1,
                i;
            for (i = 1; i < txt.length; i++) {
                $(self).html(txt.slice(0, i).join(" ") + o.afterLength + o.moreText);
                if (lastHeight < $(self).outerHeight()) {
                    lastHeight = $(self).outerHeight();
                    k++;
                    if (k > o.maxLine) {
                        i--;
                        $(self).html(txt.slice(0, i).join(" ") + o.afterLength);
                        if (o.fullText) {
                            $("<a/>", {
                                "text": o.moreText,
                                "class": o.classNew
                            }).click(function() {
                                var text = $(this).text() == o.moreText ?
                                    o.lessText : o.moreText;
                                $(this).text(text).nextAll("." + o.classNew).slideToggle()
                            }).appendTo($(self));
                            $("<br/>", {
                                "class": o.classNew
                            }).appendTo($(self));
                            $("<div/>", {
                                "text": txt.slice(i).join(" "),
                                "class": o.classNew
                            }).appendTo($(self))
                        }
                        break
                    }
                }
            }
            if (k <= o.maxLine) $(self).html(txt.join(" "))
        })
    }
})(jQuery);
</script>
/* Скрипт подрезки строк. Вторая часть */
<script type="text/javascript">
(function($) {
$(".text p").correctLines({fullText: false,maxLine: 2 })
$(".text2 span").correctLines({fullText: false,maxLine: 2 })
})(jQuery);
</script>

Данный код обрабатывает заголовок типа:
<div class="text"><p>Заголовок</p></div>

Последний раз редактировалось rikitiki, 22.02.2016 в 15:20.
Ответить с цитированием