Показать сообщение отдельно
  #3 (permalink)  
Старый 17.06.2013, 19:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

antonio22,
скрипт, обрезающий строки можно по строкам или символам
скрипт ниже работает с тегами любой вложености типа <p><span><b><b><b><b><b>ТУТ ТЕКСТ</b></b></b></b></b></span></p> достаточно указать любого из родителей
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<style type="text/css">
a.more {
   cursor: pointer;
   color: #FF0033;
}

div.more {
display: none;
position: absolute;
background-color: #FFFFCC;
border: #3366FF dashed 2px;
padding: 5px;
margin:  6px;
margin-right: 10px;

}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<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', // Класс для ссылки и скрытого текста
            symbol: 0 //Количество символов  -- отменяет maxLine
                   }, options);
        return this.each(function (index, self) {
            $(self).find('*:last').length && (self=$(self).find('*:last'));
            var txt = $(self).html().split(o.symbol ?'':' ');
             $(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.symbol ?'':' ') + o.afterLength + o.moreText);
                if (lastHeight < $(self).outerHeight()||(o.symbol && o.symbol-2 < i)) {
                    lastHeight = $(self).outerHeight();
                    k++;
                    if (k > o.maxLine) {
                        i--;
                        $(self).html(txt.slice(0, i).join(o.symbol ?'':' ') + o.afterLength);
                        if (o.fullText) {
                            $("<a/>", {
                                "text": o.moreText,
                                "class": o.classNew
                            })
                                .click(function (event) {
                                var text = $(this).text() == o.moreText ? o.lessText : o.moreText;
                                $(this).text(text).nextAll("."+o.classNew).slideToggle()
                                event.preventDefault()
                            }).appendTo($(self));
                            $("<br/>").appendTo($(self))
                            $("<div/>", {
                                "text": txt.slice(i).join(o.symbol ?'':' '),
                                "class": o.classNew
                            })
                                .appendTo($(self))
                        };
                        break
                    }
                };
            };
            if (k <= o.maxLine) $(self).html(txt.join(o.symbol ?'':' '));
        });
    }
})(jQuery);
</script>
  <title></title>
</head>
<body >


	<div class="bottom">
		<div class="text">
			<p><span><b><b><b><b><b>По умолчанию выводиться первые 70 символов. Если описание длиннее, в конце добавлять троеточие и ссылку "ещё" (пунктирное подчеркивание). При клике показывать полное описание (без перезагрузки страницы) со ссылкой в конце "скрыть" - при клике описания опять схлопывается до 60 символов.
Я видел готовый скрипт спрятоть/раскрыть текст, но там нету сиволов.
Помогите пожайлуста!</b></b></b></b></b></span></p>
		</div>
	</div><div class="bottom">
		<div class="text2">
			<p><span><b><b><b><b><b>По умолчанию выводиться первые 70 символов. Если описание длиннее, в конце добавлять троеточие и ссылку "ещё" (пунктирное подчеркивание). При клике показывать полное описание (без перезагрузки страницы) со ссылкой в конце "скрыть" - при клике описания опять схлопывается до 60 символов.
Я видел готовый скрипт спрятоть/раскрыть текст, но там нету сиволов.
Помогите пожайлуста!</b></b></b></b></b></span></p>
		</div>
	</div>
<script language="JavaScript" type="text/javascript">
$(".text p").correctLines({fullText: true,symbol: 70,moreText: " ещё", lessText : "скрыть" })
$(".text2 span").correctLines({fullText: true,maxLine: 2  })
</script>
</body>
</html>
Ответить с цитированием