Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于非分辨率计算拇指数_Php_Jquery_Css_Ajax_Resolution - Fatal编程技术网

Php 基于非分辨率计算拇指数

Php 基于非分辨率计算拇指数,php,jquery,css,ajax,resolution,Php,Jquery,Css,Ajax,Resolution,我有一个缩略图库,我只想显示“X”数量的图像,其中“X”完全符合特定用户基于其分辨率的浏览器窗口 这一点之所以重要,是因为如果我不根据它们的分辨率计算这一点,并提取静态数量的图像,在某些分辨率上,底部一行的数字将不均匀。这看起来很难看 有没有办法根据分辨率计算要显示的图像的正确数量(如果需要,我可以通过window.height和window.width获得分辨率-拇指是动态拉动的,所以这不是问题) 我目前的做法是使用一个具有各种分辨率和硬编码“图像数”值的巨大switch语句,页面加载会将分辨

我有一个缩略图库,我只想显示“X”数量的图像,其中“X”完全符合特定用户基于其分辨率的浏览器窗口

这一点之所以重要,是因为如果我不根据它们的分辨率计算这一点,并提取静态数量的图像,在某些分辨率上,底部一行的数字将不均匀。这看起来很难看

有没有办法根据分辨率计算要显示的图像的正确数量(如果需要,我可以通过window.height和window.width获得分辨率-拇指是动态拉动的,所以这不是问题)

我目前的做法是使用一个具有各种分辨率和硬编码“图像数”值的巨大switch语句,页面加载会将分辨率发送到PHP脚本,并将其传递到这个switch语句中,但是这是不切实际的,在不同的监视器上似乎有不可预测的行为,即使是分辨率相同的显示器。当然有一种方法可以动态计算这一点?或者至少是一个更好的解决方案,来解决我目前正在使用的看似可怕的问题


谢谢。

这听起来像是一道代数题。给定宽度x高度。。。但我们知道缩略图不会压缩成不规则的大小。因此,我们计算有多少将适合我们的宽度(考虑到它们之间的css边距)。高度也一样。我无法为您编写代码,因为我没有每个缩略图的宽度和高度,但我也看到它非常简单。

您可以通过传递一个过滤函数来使用jQuery的
.filter()
函数的更强大版本p

$(selector).filter(function () { });
这将遍历jQuery对象中的每个元素,并对其运行筛选函数。如果函数返回一个
truthy
值,则保留该元素<代码>falsy丢弃

因此,对于您的用例,让我们假设所有库图像都以某种方式缓存在jQuery对象中:

// gallery images
var _images = $('img');
然后,通过在图像上运行过滤函数,您可以仅获取适合某个宽度的图像,如:

var _fits = _images.filter(function () {

    // as the filter function iterates, 
    // [this] is the current element.

    return (this.width === window.width);
});
希望有帮助

编辑 重读你的问题,我似乎误解了

如果您有一组图像,并且希望使其完全适合某个设置的宽度,则完全可能有多个可能的组合,其中一个图像子集适合,并且也完全可能没有一个子集完全适合


一个(某种)简单的解决方法是使用布局插件为您完成繁重的算法工作。我想到的一个问题是(查看fitRows的布局模式),它可以免费用于非商业/个人用途。

我使用百分比作为利润,这会有问题吗?我早就试着这么做了,但似乎太离谱了。。。也许我的一个计算错了哈哈,也许。给我一些关于图像大小(w/h)和它们之间的单元格距离的数字,我们可以推一个计算器。“边距”是指拇指的左侧和右侧,还是指拇指之间或两者之间?另一个选项是故意加载过多的一行或两行,在最后一行上方显示“淡入白色”,并提示用户可以滚动查看更多内容。滚动时,在最后一个位置显示微调器,然后加载另一页。
thumbs\u per\u row=floor(宽度/(缩略图宽度+左侧填充+右侧填充));拇指=每行*行拇指数
。你到底有什么问题?