Помощник
|
Кнопка "Далее" для продолжения статьи |
r0mZet
|
Сообщение
#1
|
||
|
|
||
|
|||
olegr |
8.1.2014, 0:58;
Ответить: olegr
Сообщение
#2
|
|
<p class="myClass"> Текст который будет обрезаться при достижении заданного максимального количества символов в нем. </p> В <head> подгружаем сначала jQuery, а потом сам плагин: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script type="text/javascript" src="jquery.truncatable.js"></script> И инициализируем плагин, указав класс для которого будем его использовать: $(function { $(".myClass").truncatable(); }); Опционально можно указать количество символов при превышении которого, текст будет скрыт. По умолчанию это количество символов равно 100. $('.myClass').truncatable({ limit: 200, more: '.....', less: true, hideText: '[скрыть]' }); вот сам скрипт jquery.truncatable.js (function($){$.fn.truncatable=function(options){var defaults={limit:100,more:'...',less:false,hideText:'[read less]'};var options=$.extend(defaults,options);return this.each(function(num){var stringLength=$(this).html().length;if(stringLength>defaults.limit){var splitText=$(this).html().substr(defaults.limit);var splitPoint=splitText.substr(0,1);var whiteSpace=new RegExp(/^\s+$/);for(var newLimit=defaults.limit;newLimit<stringLength;newLimit++){var newSplitText=$(this).html().substr(0,newLimit);var newHiddenText=$(this).html().substr(newLimit);var newSplitPoint=newSplitText.slice(-1);if(whiteSpace.test(newSplitPoint)){var hiddenText='<span class="hiddenText_'+num+'" style="display:none">'+newHiddenText+'</span>';var setNewLimit=(newLimit-1);var trunkLink=$('<a>').attr('class','more_'+num+'');$(this).html($(this).html().substr(0,setNewLimit)).append('<a class="more_'+num+'" href="#">'+defaults.more+'<a/> '+hiddenText);$('a.more_'+num).bind('click',function(){$('span.hiddenText_'+num).show();$('a.more_'+num).hide();if(defaults.less==true){$('span.hiddenText_'+num).append('<a class="hide_'+num+'" href="" title="'+defaults.hideText+'">'+defaults.hideText+'</a>');$('a.hide_'+num).bind('click',function(){$('.hiddenText_'+num).hide();$('.more_'+num).show();$('.hide_'+num).empty();return false})}});newLimit=stringLength}}}})}})(jQuery);
|
|
|
Светозар |
8.1.2014, 22:55;
Ответить: Светозар
Сообщение
#3
|
|
Как технически реализовывать такой момент: Имеется статья на странице, но она очень длинная и хочется сделать из нее превью в виде первого абзаца, а последующее разворачивается нажатием кнопки ДАЛЕЕ. ??? P/S: не допуская переход на новую страницу. Сайт на PHP Чисто из любопытства, почему не допускается переход на новую страницу? И как это связанно с тем что сайт на PHP? Представьте, что у вас 1000 новостей. На каждом будет загружаться этот скрипт, который в совокупности создаст не малую нагрузку. Куда большую чем если вы сделаете полную новость на другой странице! НУ, а если у вас статья в одной "строке(бд)" то можно разделить скажем тегом [next] сделав метод, проверяющий на наличии данного сочетания символов будет выводить <a href="url_next">title_next_url</a>
|
|
|
r0mZet
|
Сообщение
#4
|
|
Потому что переход на новую страницу не желателен.
Как это связано с тем что сайт на РНР ? - не умничайте понапрасну, если Вы знаете больше меня то предложите пути решения я был бы Вам очень признателен и Ваш авторитет вырос бы в моих глазах. |
|
|
olegr |
9.1.2014, 2:16;
Ответить: olegr
Сообщение
#5
|
|
[member=r0mZet], надеюсь мой вариант вам помог )
Однако недостаток в виде обреза слова ровно по достижении 200 (или сколько вы укажете символов) можно заменить троеточием. ..[..] Сообщение отредактировал GVA - 9.1.2014, 2:17 |
|
|
r0mZet
|
Сообщение
#6
|
|
[member=r0mZet], надеюсь мой вариант вам помог ) Однако недостаток в виде обреза слова ровно по достижении 200 (или сколько вы укажете символов) можно заменить троеточием. ..[..] Да, спасибо! |
|
|
fedornabilkin |
10.1.2014, 11:48;
Ответить: fedornabilkin
Сообщение
#7
|
|
|
Представьте, что у вас 1000 новостей. На каждом будет загружаться этот скрипт, который в совокупности создаст не малую нагрузку. Простите, нагрузку на что? На браузер каждого пользователя? Даже, если и 10000 новостей, они ведь не будут запрошены все одновременно
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Rebex.io – Ваша инновационная платформа для обмена криптовалюты! | 3 | Rebex | 939 | Вчера, 20:50 автор: Rebex |
|
Посоветуйте массажер для спины и шеи | 10 | Boymaster | 894 | Вчера, 18:02 автор: Boymaster |
|
Обучение Email Рассылкам + Софт Для Автоматизации (100к в сутки с сервера) | 10 | zennoboss | 4653 | Вчера, 5:20 автор: Skyworker |
|
Какой % отказов нормален для сайта? | 14 | Aloof | 3381 | 23.4.2024, 13:50 автор: Vmir |
|
Люблю творить! Статьи для вас Копирайтинг- моя жизнь! |
312 | Zoya83 | 190713 | 23.4.2024, 7:51 автор: DimonX |
Текстовая версия | Сейчас: 25.4.2024, 0:16 |