我正在用PHP显示动态图库..。我想要的是不要在一页上显示大量的缩略图,我宁愿做分页。你知道数字页和下一个..。
这是老生常谈,但我不知道该怎么做。
但请站住,,这里是扭转
我在DIVS中显示缩略图,我设置成一行,所以如果有人在1024x768中打开页面,我会连续得到3个缩略图,并且有6行,所以他们总共做了18个缩略图。
但是,如果有人用他们的分辨率打开页面,比如说1600 x 1200,我会连续得到5张缩略图,这样18个缩略图就会变成3行。假设我想保留第6行然后弹出缩略图到30.如何使用代码来实现
附注:祝你好运我的疯狂牙..。
发布于 2010-11-13 18:48:24
基本技术是这样的:你知道,或者计算出,你每页显示多少张图片。所以,当你做你的查询,这是你的限制。另外,您还需要一个偏移--需要跳过多少个结果。如果您每页显示8个结果,并且希望显示第3页,则您的偏移量将为(3-1)* 8或16。
现在,您的有趣的挑战听起来就像您的显示:您正在显示不同数量的缩略图根据显示。因此,您需要计算所需显示的大小(可能使用javascript ),然后根据显示的页面发出ajax请求,以查询所需结果的数量和偏移量。
发布于 2010-11-13 18:47:08
分页可以在PHP中处理。但是,您不能完成在纯PHP中提到的所有内容。将涉及一些AJAX/Javascript,特别是浏览器分辨率的自动检测。您必须考虑具有纵向和横向尺寸的浏览器的客户端,包括小屏幕(移动电话240x240或320x320)。
发布于 2010-11-13 18:47:55
假设您设法控制了用户的分辨率,并且能够计算DIV中的缩略图总数,那么告诉PHP使用30个缩略图并不神奇。
define('ROW_TOTAL', 6);
define('MIN_THUMBS', 3);
define('THUMB_WIDTH', 320);
// Get the clients resolution (i.e. via ECMA and a cookie)
$thumbs = isset($_COOKIE['res_width']) ?
(int) (intval($_COOKIE['res_width'], 10) / THUMB_WIDTH) : MIN_THUMBS;
// Get the page via the client's request
$page = isset($_GET['page']) ?
intval($_GET['page'], 10) : 0;
$query = sprintf(
'SELECT thumb_url' .
' FROM images' .
' WHERE set_id = %u'.
' LIMIT %u OFFSET %u',
$set_id,
$thumbs,
$thumbs * $page
);
// Feth the records and process them in a loop
// I'll leave that up to you祝你好运
https://stackoverflow.com/questions/4173975
复制相似问题