01.02.2013, 10:58
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2012
Сообщений: 104
|
|
скрипт, обрезающий строки
посоветуйте пожалуйста скрипт, который может обрезать в блоке текст до определённого количества строк
у меня есть такой . но он не подходит потому что нужно указывать конкретный родительский блок. при этом если в нём окажется вложенный например span, то скрипт не обрабатывает текст
|
|
01.02.2013, 11:05
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
А можно конкретнее? Где, зачем, какой текст, и какие особенности?
|
|
01.02.2013, 11:27
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2012
Сообщений: 104
|
|
в интернет-магазине описания товаров слишком длинные. хотелось бы сократить их до определённого количества строк(например до 3). но проблема в том, что описания созданы через визивиг и поэтому в тексте содержатся различные тэги типа span, div, p и т.д.
однако каждое описание находится в контейнере .text
хотелось бы что-нибудь типа такого
jQuery('.text').correctLines( 3, '' );
|
|
01.02.2013, 11:30
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Думаю вы решаете проблемы не через то место в том месте. Проблема на сервере, а не в браузере. Что за движок?
|
|
01.02.2013, 11:35
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2012
Сообщений: 104
|
|
simpla. не хотелось бы править ядро. да и проще через js
|
|
01.02.2013, 11:44
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
zlodiak,
Приведите пример html код блока в котором надо обрезать текст
|
|
01.02.2013, 11:59
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2012
Сообщений: 104
|
|
<article class="item2">
<div class="top">
<h1>
<a data-product="1" href="products/apple-iphone-4s-16gb">Apple iPhone 4S 16Gb</a>
</h1>
<form class="variants" action="/cart">
<span class="price">44 000 <span class="currency">руб</span></span>
<input id="variants_1" name="variant" value="1" type="radio" class="variant_radiobutton" checked style="display:none;"/>
<input type="submit" class="button buy" value="Купить" data-result-text="Добавлено" />
<a class="credit" href="#">В кредит</a>
<span class="price">42 000 <span class="currency">руб</span></span>
<input id="variants_2" name="variant" value="2" type="radio" class="variant_radiobutton" style="display:none;"/>
<input type="submit" class="button buy" value="Купить" data-result-text="Добавлено" />
<a class="credit" href="#">В кредит</a>
</form>
</div>
<div class="bottom">
<div class="text"><p><span>iPhone 4 получил 3,5-дюймовый дисплей с разрешением 960 x 640 пикселей. Толщина устройства всего 9,3 мм. Передняя и задняя стороны аппарата обе плоские, выполнены из стекла, торцевая окантовка - стальная. У телефона есть фронтальная камера для видеозвонков, дополнительный микрофон для шумоподавления, а слот SIM сменился на Micro SIM. Батарея обеспечивает до 14 часов в режиме разговора, 6/10 часов в режиме веб-серфинга по 3G/Wi-Fi, 10 часов просмотра видео, 40 часов прослушивания музыки и 300 часов режима ожидания. Кроме того, добавлена поддержка Wi-Fi 802.11n. Разрешение основной камеры 5 МП, имеется поддержка видеосъемки с разрешением 1280 x 720 пикселей со скоростью 30 кадров в секунду.Дисплей 3,5 дюйма, 640х960 точек, IPS, олеофобное покрытие / Двухъядерный A5 Чип, Графический ускоритель PowerVR SGX543MP2 / 8-мегапиксельная фотокамера, HD видео (1080pх) / Bluetooth 4.0 и Wi-Fi 802.11b/g/n / гарантия - 12 месяцев.</span></p></div>
</div>
</article>
но набор тэгов в .text может быть самый различный так как описание набиралось в визивиг-редакторе
|
|
01.02.2013, 12:21
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
zlodiak,
попробуйте обратится к автору плагина devote
Плагин обрезающий текст для jQuery
Последний раз редактировалось рони, 01.02.2013 в 12:25.
|
|
01.02.2013, 14:08
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
zlodiak, почему плагин неработает я неразобрался, но поставил "костыль" с ним возможен такой вариант ...
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
(function(e){e.fn.correctLines=function(h,j){return this.each(function(p,d){var c,b;h=(c=/^(?:.*\s)?fixline_([\d]+)(?:\s.*)?$/.exec(d.className))&&c[1]||h||3;j=j||"...<br />";b=e(d).css("display");c=e(d).css("display","block").clone(!0).css({height:"auto",position:"absolute",width:d.offsetWidth+"px"}).html("");e(d).css("display",b).after(c);for(var k=0,m=0,l=0,n=0,f=-1,a=e(d).html(),g=[];/(<.*)\s(.*>)/g.exec(a);)a=a.replace(/(<.*)\s(.*>)/g,"$1&jftF767Tgjk56&$2");a=a.split(" ");for(b=0;b<a.length&& !(a[b]=a[b].replace(/&jftF767Tgjk56&/g," "),c[0].innerHTML+=a[b]+" ",c[0].clientHeight>l&&(k=l,n=f+1,f=b-1,l=c[0].offsetHeight,++m>h));b++);if(m>h){e(d).css({height:k+"px",overflowY:"hidden"});g=a.slice(n,f+1);k=c.html(g.join(" "))[0].offsetHeight;for(b=g.length-1;0<=b;b--)if(c.html(g.join(" ")+j),c[0].offsetHeight>k)g.splice(b,1),f--;else break;a[f]+=j;a.length=f+1;e(d).html(a.join(" "))}else e(d).css({height:"auto"});c.remove()})}})(jQuery);
</script>
<title></title>
</head>
<body>
<article class="item2">
<div class="top">
<h1>
<a data-product="1" href="products/apple-iphone-4s-16gb">Apple iPhone 4S 16Gb</a>
</h1>
<form class="variants" action="/cart">
<span class="price">44 000 <span class="currency">руб</span></span>
<input id="variants_1" name="variant" value="1" type="radio" class="variant_radiobutton" checked style="display:none;"/>
<input type="submit" class="button buy" value="Купить" data-result-text="Добавлено" />
<a class="credit" href="#">В кредит</a>
<span class="price">42 000 <span class="currency">руб</span></span>
<input id="variants_2" name="variant" value="2" type="radio" class="variant_radiobutton" style="display:none;"/>
<input type="submit" class="button buy" value="Купить" data-result-text="Добавлено" />
<a class="credit" href="#">В кредит</a>
</form>
</div>
<div class="bottom">
<div class="text"><p><span>iPhone 4 получил 3,5-дюймовый дисплей с разрешением 960 x 640 пикселей. Толщина устройства всего 9,3 мм. Передняя и задняя стороны аппарата обе плоские, выполнены из стекла, торцевая окантовка - стальная. У телефона есть фронтальная камера для видеозвонков, дополнительный микрофон для шумоподавления, а слот SIM сменился на Micro SIM. Батарея обеспечивает до 14 часов в режиме разговора, 6/10 часов в режиме веб-серфинга по 3G/Wi-Fi, 10 часов просмотра видео, 40 часов прослушивания музыки и 300 часов режима ожидания. Кроме того, добавлена поддержка Wi-Fi 802.11n. Разрешение основной камеры 5 МП, имеется поддержка видеосъемки с разрешением 1280 x 720 пикселей со скоростью 30 кадров в секунду.Дисплей 3,5 дюйма, 640х960 точек, IPS, олеофобное покрытие / Двухъядерный A5 Чип, Графический ускоритель PowerVR SGX543MP2 / 8-мегапиксельная фотокамера, HD видео (1080pх) / Bluetooth 4.0 и Wi-Fi 802.11b/g/n / гарантия - 12 месяцев.</span></p></div>
</div>
</article>
<script language="JavaScript" type="text/javascript">
$(".text span").correctLines(3,'')
</script>
</body>
</html>
Последний раз редактировалось рони, 01.02.2013 в 14:17.
|
|
01.02.2013, 14:24
|
|
Профессор
|
|
Регистрация: 15.02.2011
Сообщений: 471
|
|
|
|
|
|