Огромная благодарность за помощь!
Внёс исправления по части ссылок. Теперь на каждый товар только одна ссылка.
Для сравнения, создал копию страницы, в которой осуществляется скрытие чисто на 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>