我有一个网站,可容纳100个具有以下内容的对象:
function Products (type, title, description, cost, image){
this.type = type;
this.title = title;
this.description = description;
this.cost = cost;
this.image = image;
this.displayInfo = function(){
var info ="<div class='p-image'>";
info += this.image + "</div><div class='p-title'>";
info += this.title + "</div><div class='p-cost'>";
info += "Online Product Cost: $" + this.cost + "</div><div class='p-desc'>";
info += "<strong>DESCRIPTION:</strong> " + this.description + "</div>";
return info;
}
}
// define an array to store products
var product_list = [];
var im = "<img src='http://ecx.images-amazon.com/images/I/911wQX4ahaL._SL1500_.jpg' id = 'image'>";
var desc = "<br><span style = 'font-weight: bold; padding-top: 10px;'>Developer: </span>Teyon<br> <span style = 'font-weight: bold;'>Platforms: </span>PS3, WIN, X360<br> <span style = 'font-weight: bold;'>Release Date: </span>2013</br><span id = 'para'> Sequel to Heavy Fire: Afghanistan, in which soldiers are sent after a captured spy who holds the plans to a secret Iranian nuclear weapons facility.</span>";
var product = new Products('v fps win xbone ps3','Heavy Fire: Shattered Spear',desc, 10.00, im);
product_list.push(product);
var im = "<img src='http://upload.wikimedia.org/wikipedia/en/c/c5/AliensColonialMarinesBox.png' id = 'image'>";
var desc = "<br><span style = 'font-weight: bold;'>Developer: </span>Gearbox Software<br> <span style = 'font-weight: bold;'>Platforms: </span>PS3, WIN, X360<br> <span style = 'font-weight: bold;'>Release Date: </span>2013</br><span id = 'para'>True sequel to James Cameron's film, the story of Aliens: Colonial Marines takes place nearly 17 weeks after the events of Alien 3 and almost 199 years prior to the events of Alien Resurrection, as the cryotubes containing Ellen Ripley, Corporal Hicks, Newt, and the android Bishop had ejected from the Sulaco. </span>";
product_list.push(new Products('v fps','Aliens: Colonial Marines',desc, 10.00, im));
displayProducts();
function displayProducts() {
for (var i=0; i<product_list.length; i++){
//product_list[i].type can determine which are chosen
var divrow = "<div class='list "+ product_list[i].type + "' data-index='" +i+ "' >";
divrow += product_list[i].displayInfo() + "</div>"
$('#main-list').append(divrow);
//tried append to '#list' and '.list' but didn't work either so made main-list div
}
}
........
当它们显示时,一旦页面加载,就会立即显示所有页面。所以&#34;身高&#34;我的页面是巨大的。我希望列表一次从100s下降到10。与谷歌如何展示他们的网站类似:
之前我从未制作过这个.show()版本所以我想知道如何做到这一点。我只是希望它们在页面上动态更新,因为我在同一页面上也有一个购物车表。有什么想法或建议吗?
到目前为止,我的网站看起来像这样:
答案 0 :(得分:0)
这是a functioning sample让你入门。以下是它的相关代码:
HTML:
<div id="main-list"></div>
<div id="pager"></div>
CSS:
.hidden{
display:none;
}
使用Javascript:
//set a variable to track the number of pages
var pageCount = 0;
function displayProducts() {
//create a container 'page'
var page = $('<div class="page"/>');
//parse your data array
for (var i = 0; i < product_list.length; i++) {
//create the item div
var divrow = "<div class='list " + product_list[i].type + "' data-index='" + i + "' >";
divrow += product_list[i].displayInfo + "</div>"
//append it to the 'page
page.append(divrow);
//if we reach 10 items (or the end of the list), add the 'page' to the doc, and reset the page variable
if ((i + 1) % 10 == 0 || i == product_list.length-1) {
//add page
$('#main-list').append(page);
//increase page count
pageCount++;
//reset the page variable to a new blank 'page' div
page = $('<div class="page hidden"/>');
}
}
//simple pager anchor elements
for (var j = 0; j < pageCount; j++) {
//using data-page attribute to refer to the 0 based index
$('#pager').append('<a href="#" data-page="' + j + '">' + (j + 1) + '</a> ');
}
}
//hide all pages then show the one that equals the 'data-page' index
$('#pager').on('click', 'a', function (e) {
$('.page').addClass('hidden').eq($(this).attr('data-page')).removeClass('hidden');
});
HTH -Ted