PbootCMS长篇内容JS无刷新分页方法2

PbootCMS长篇内容JS无刷新分页方法2-根据内容所包含的子标签数分页

即ID为#content中包含的html标签(如:P段落或者其他标签)

格式为

<div id="content">
    <p>1</p>
    <p>2</p>
    <p>3</p>
    ......
    <p>N</p>
</div>

对于包含复杂或者比较杂乱标签的内容可能会不怎么精确,内容尽量还是整理下,不要直接从WORD里面复制到编辑器中,因为这样内容标签会很多很复杂,不利于分页

闲话不多说直接上代码,有需要的自行去掉注释对应修改。

<div class="content mb-3" id="content">{content:content}</div> //注:内容标签一定要带上对应的ID如#content 下面js会用到

<div id='page_navigation'></div> //分页标签

<input type='hidden' id='current_page' />
<input type='hidden' id='show_per_page' />
//设置参数

<script type="text/javascript">
$(document).ready(function(){
	//每页显示的标签数量
	var show_per_page = 8; 
	//获取id为content子标签的总数量
	var number_of_items = $('#content').children().size();
	//计算分页数
	var number_of_pages = Math.ceil(number_of_items/show_per_page);
	
	//设置参数
	$('#current_page').val(0);
	$('#show_per_page').val(show_per_page);
	
	
	var navigation_html = '<a class="previous_link" href="javascript:previous();">上一页</a>';
	var current_link = 0;
	while(number_of_pages > current_link){
		navigation_html += '<a class="page_link" href="javascript:go_to_page(' + current_link +')" longdesc="' + current_link +'">'+ (current_link + 1) +'</a>';
		current_link++;
	}
	navigation_html += '<a class="next_link" href="javascript:next();">下一页</a>';
	
	$('#page_navigation').html(navigation_html);
	
	
	$('#page_navigation .page_link:first').addClass('active_page');
	$('#content').children().css('display', 'none');
	$('#content').children().slice(0, show_per_page).css('display', 'block');
	
});
//上一页
function previous(){
	new_page = parseInt($('#current_page').val()) - 1;
	if($('.active_page').prev('.page_link').length==true){
		go_to_page(new_page);
	}	
}
//下一页
function next(){
	new_page = parseInt($('#current_page').val()) + 1;
	if($('.active_page').next('.page_link').length==true){
		go_to_page(new_page);
	}
}
//点击跳转
function go_to_page(page_num){
	var show_per_page = parseInt($('#show_per_page').val());
	start_from = page_num * show_per_page;
	end_on = start_from + show_per_page;
	$('#content').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');
	$('.page_link[longdesc=' + page_num +']').addClass('active_page').siblings('.active_page').removeClass('active_page');
	$('#current_page').val(page_num);
}
  
</script>
//这里是随便设置的分页样式
<style>
#page_navigation a{
	padding:3px;
	border:1px solid gray;
	margin:2px;
	color:black;
	text-decoration:none
}
.active_page{
	background:darkblue;
	color:white !important;
}
</style>


效果展示

分页.jpg