Expander是一个简单、可自定义的jQuery文本截断插件,允许您快速轻松地向任何内容添加扩展和折叠功能。
当文本折叠时,“阅读更多”链接将变成一个可点击的锚标记。相反,当文本展开时,无读链接将变成一个锚标记。
这个插件使用jQuery的幻灯片和淡入淡出转换,可以支持内联和块级元素。
1.在最新的jQuery库之后的某个地方添加jQuery Expander插件。
<script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/jquery.expander.min.js"></script>
2.调用targer元素上的函数。默认情况下,插件会自动折叠超过100个字符的文本。
<p class="demo"> Your Text Here </p>
$(function(){
$('.demo').expander();
});
3.覆盖默认的字符限制。默认值:100。
$('.demo').expander({
slicePoint: 50,
});
4.确定是否显示单词计数器,该计数器显示“阅读更多”链接后面的单词数。默认值:false。
$('.demo').expander({
showWordCount: true,
wordCountText: ' ({{count}} words)',
});
5.自定义多读和少读链接。
$('.demo').expander({
expandText: 'read more',
expandPrefix: '… ',
moreLinkClass: 'more-link',
userCollapseText: 'read less',
userCollapsePrefix: ' ',
lessLinkClass: 'less-link',
});
6.设置展开和折叠内容时的过渡。
$('.demo').expander({
// or 'fadeIn'
expandEffect: 'slideDown',
expandSpeed: 250,
// or 'fadeOut'
collapseEffect: 'slideUp',
collapseSpeed: 200,
});
7.更多配置选项。
$('.demo').expander({
// whether to keep the last word of the summary whole (true) or let it slice in the middle of a word (false)
preserveWords: true,
// whether to normalize the whitespace in the data to display (true) or not (false)
normalizeWhitespace: true,
// text to include between summary and detail. Default ' ' prevents appearance of
// collapsing two words into one.
// Was hard-coded in script; now exposed as an option to fix issue #106.
detailPrefix: ' ',
// a threshold of sorts for whether to initially hide/collapse part of the element's contents.
// If after slicing the contents in two there are fewer words in the second part than
// the value set by widow, we won't bother hiding/collapsing anything.
widow: 4,
expandAfterSummary: false,
// Possible word endings to test against for when preserveWords: true
wordEnd: /(&(?:[^;]+;)?|[0-9a-zA-Z\u00C0-\u0100]+|[^\u0000-\u007F]+)$/,
// class names for summary element and detail element
summaryClass: 'summary',
detailClass: 'details',
// number of milliseconds after text has been expanded at which to collapse the text again.
// when 0, no auto-collapsing
collapseTimer: 0,
// allow the user to re-collapse the expanded text.
userCollapse: true,
});
8.回调函数。
$('.demo').expander({
onSlice: null, // function() {}
beforeExpand: null, // function() {},
afterExpand: null, // function() {},
onCollapse: null, // function(byUser) {}
afterCollapse: null // function() {}
});