javascript:花了一天时间解决了本来一小时就能搞定的事

此刻我的心情是无奈。。。

前天我打算写一个支持多图片同时滚动的类——就像某些网站下面展示友情链接那样的滚动。开始前我计划了一下我要实现的功能。

  1. 切换效果——只有滚动
  2. 可以单张图片切换,也可以多张图片切换
  3. 同时显示图片的张数与每次滚动的图片张数可以自定义
  4. 根据图片总数+同时显示张数+单次滚动张数,自动插入页码

关于第3点说明一下,就是比如我容器宽900,每个图片宽300,那无疑,我可以同时显示3张图片;但我可以每次向左滚动1张图片(或者2张,3张),也就是说不一定每次显示几张就必须滚动几张。

写到一半,一个让我郁闷一天的问题来了:如何计算出页码总数

有几个数字是已知的:图片总数,每次显示图片数,每次滚动张数。我用傻瓜式的排列法列举了下面这个数列:

总张数 显示数量 单次滚动 总页码数
10 1 1 10
10 2 1 9
10 2 2 5
10 3 1 8
10 3 2 5
10 3 3 4
10 4 1 7
10 4 2 4
10 4 3 3
10 4 4 3

要一直排下去的话还有很多,比如一次显示5张,6张。。。但郁闷的是,我找不到页码数与前面三个数字的计算关系

从昨天下午算到今天下午,整整一天了。。。有没有数学学的好的帮我看看上面数字的规律呢?都怪我高中数学不及格啊。。

更新:放出算法 —— Math.ceil((总张数 - 显示数量) / 单次滚动 + 1)

已得到评论1楼验证,不过他是1个小时就想出来了,而我用了一天。。。差距啊

posted on   十年灯  阅读(617)  评论(3编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2012年4月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

统计

点击右上角即可分享
微信分享提示