Рейтинг: 0.0/0

Метки

форум

Опрос: Чего добавлять больше?

Чего добавлять больше?
Всего ответов: 192

Главная » 2011 » Март » 7 » Ресайз текстовых сообщений форума (скрипт увеличения/уменьшения текста сообщений)

Работа данного скрипта заключается в следующем: в поле сообщений форума будут вставлены три ссылки: ссылка, многократно увеличивающая размер текста сообщений, ссылка, многократно уменьшающая размер текста сообщений и ссылка, по клику по которой, происходит сброс размера текста до исходного.

Исходное состояние размера текста:

максимальное увеличение размера текста

максимальное уменьшение размера текста

Установка

1. В секцию HEAD шаблона "Общий вид страниц форума" вставляем:

Code

<script type="text/javascript" src="http://ps-test.ucoz.ru/jquery-1.4.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {

   //Минимальный размер шрифта
   var min=9;   

   //Максимальный размер шрифта
   var max=16;   
     
   //Сохраняем заданное в таблице стилей значение размера шрифта
   var reset = $('p').css('fontSize');   
     
   //Изменение размера будет проводиться для указанных элементов
   var elm = $('.posttdMessage , .quoteMessage , .codeMessage');   
     
   //Устанавливаем в перменной значение шрифта по умолчанию (удаляем px)
   var size = str_replace(reset, 'px', '');   
   var size_reset = size;
     
   //Функция увеличения размера шрифта
   $('a.fontSizePlus').click(function() {
     
   //Если размер шрифта меньше или равен максимальному значению
   if (size<=max) {
     
   //Увеличиваем размер шрифта
   size++;
     
   //Устанавливаем размер шрифта
   elm.css({'fontSize' : size});
   }
     
   //Прерываем передачу события далее по дереву DOM
   return false;   
     
   });
     
   //Функция уменьшения размера шрифта
   $('a.fontSizeMinus').click(function() {

   //Если размер шрифта больше или равен минимальному значению
   if (size>=min) {
     
   //Уменьшаем размер
   size--;
     
   //Устанавливаем размер шрифта
   elm.css({'fontSize' : size});
   }
     
   //Прерываем дальнейшую передачу события по дереву DOM
   return false;   
     
   });
     
   //Функция сброса к значению по умолчанию
   $('a.fontReset').click(function () {
     
   //Устанавливаем значение размера шрифта по умолчанию
   size = size_reset;
   elm.css({'fontSize' : reset});   
   });
     
});

//Функция замена строки
function str_replace(haystack, needle, replacement) {
   var temp = haystack.split(needle);
   return temp.join(replacement);
}
</script>

2. В шаблоне "Вид материалов форума" находим строку

Code

</td><td class="posttdMessage" valign="top">
$MESSAGE$

переписываем её так:

Code
</td><td class="posttdMessage" valign="top">
<a href="#" class="fontSizePlus">A+</a> |   
<a href="#" class="fontReset">Сброс</a> |   
<a href="#" class="fontSizeMinus">A-</a></br>
$MESSAGE$

В целом всё, при желании, ссылки можно заменить картинками. Если вы не хотите, чтобы при увеличении размера текста сообщений увеличивался размер текста цитаты или листинга кода, то исключите из строки:

Code
var elm = $('.posttdMessage , .quoteMessage , .codeMessage');

классы quoteMessage и/или codeMessage.

Чтобы при ресайзинге происходило увеличение/уменьшение размера только текста сообщения (не будут увеличиваться размеры текста цитат, листингов кода, размеры самих ссылок ресайзинга), нужно код $MESSAGE$ в шаблоне "Вид материалов форума" оформить так:

Code
<p class="intro">$MESSAGE$</p>

а в шаблоне "Общий вид форума" строку скрипта:

Code
//Изменение размера будет проводиться для указанных элементов   
var elm = $('.posttdMessage , .quoteMessage , .codeMessage');

переписать так:

Code
//Изменение размера будет проводиться для указанных элементов   
var elm = $('.intro');

Адаптация под uCoz PS-Studio.Info
Решение от

Ссылка:
BB-код:
HTML-код:
Всего комментариев: 0
Оставь комментарий первым!
Имя *:
Email:
Код *: