繁体   English   中英

PHP动态画廊分页(略有不同)

[英]PHP Dynamic Gallery Pagination (with a twist)

好吧,我正在使用PHP显示动态画廊...我要的是代替在一页上显示很多缩略图,而不是在做分页。.您知道数字页以及下一页和全部。

好吧,这是一个老东西,但我不知道该怎么做。

  • 怎么做 ?

但牵着马在这里

我在DIVS中显示缩略图,我在行中设置了缩略图,因此可以说,如果有人打开1024x768的页面,则我会连续获得3张缩略图,并且有6行,因此它们总共可制作18张缩略图。

但如果有人打开的页面与他们的分辨率可以说,1600×1200,我得到5个thumnails连胜所以18个缩略图将使3行..可以说,我想保留的行6和弹出缩略图30 ... 如何骑代码来做到这一点

ps祝我疯狂的唐卡好运...

分页可以用PHP处理。 但是,您无法完成纯PHP中提到的所有内容。 某些AJAX / Javascript将涉及到,特别是在自动检测浏览器分辨率方面。 您必须考虑使用具有纵向和横向尺寸(包括小屏幕)(移动电话240x240或320x320)的浏览器的客户端。

既然可以通过某种方式设法保持用户的分辨率,并且能够计算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

祝你好运,aefxx

基本技术是:您知道或计算每页显示多少图像。 因此,当您进行查询时,这就是您的LIMIT。 另外,您将需要一个偏移量-您需要跳过多少个结果。 如果每页显示8个结果,而您想显示第3页,则偏移量将为(3-1)* 8或16。

现在,您的有趣挑战听起来像您的显示器:您将根据显示器显示不同数量的缩略图。 因此,您可能需要使用javascript来计算所需的显示大小,然后基于显示的页面发出ajax请求以查询所需的结果量和偏移量。

您可以通过Java脚本找到屏幕分辨率

document.write(screen.width +'x'+ screen.height);

此行将打印屏幕分辨率。 因此,如果有条件,可以照常采取进一步措施

if($ screen = 1024x768){执行查询} else {执行查询}

我希望这能帮到您..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM