图片尺寸自适应算法

废话不说,直接到正题。

 

将用户选择的图片,直接加载到一个固定大小的容器内。如果被加载的图片大小和容器的大小及宽高一致,那么图片比例失调的概率极大。如何让图片加载到容器内有保持比例不失调呢?想一个算法吧!

 

设容器宽为W,高为H,则宽高比例为W/H=A;

设被加载图片宽为W',高为H',则被加载图片宽高为W'/H'=A';

设修正后的被加载图片宽为W'',高为H''。

 

下面分情况讨论:

 

A>1的情况

1. 若A'>A,这时被加载图片相对容器更宽,更矮。

因此,被加载图片宽度 = 容器宽度, 被加载图片高度 = 原有宽高比率下的现有宽度对应的高度;

则,W'' = W, H'' = W'' / A' = W / ( W' / H' ) = W * H' / W' = H' * ( W / W' ); 

2. 若A'<A且A'>1,这时被加载图片相对容器更高,更窄。

因此,被加载图片高度 = 容器高度, 被加载图片宽度 = 原有宽高比率下的现有宽度对应的宽度;

则,H'' = H, W'' = H'' * A' = H * ( W' / H' ) = H * W' / H' = W' * ( H / H' );

3. 若A'<A且A'<1,这时被加载图片相对容器更高,更窄。

因此,被加载图片高度 = 容器高度, 被加载图片宽度 = 原有宽高比率下的现有宽度对应的宽度;

则,H'' = H, W'' = H'' * A' = H * ( W' / H' ) = H * W' / H' = W' * ( H / H' );

4. 若A'<A且A'=1,这时被加载图片为正方形。

因此,应该取容器最小变作为被加载图片的边长;由于目前容器更宽,因此取容器高为被加载图片的边长;

则算法同2,3.

5. 若A' = A,这时被加载图片和容器的宽高比率相同。

因此,W'' = W, H'' = H。

 

A<1的情况

1. 若A'>A且A'>1,这时被加载图片相对容器更宽,更矮。

因此,算法同(A>1的情况中的算法1)

2. 若A'>A且A'=1,这时被加载图片为正方形,相对容器较宽,较矮。

因此,算法同(A>1的情况中的算法1)

3. 若A'>A且A'<1,这时被加载图片相对容器更宽,更矮。

因此,算法同(A>1的情况中的算法1)

4. 若A'<A,这时被加载图片相对容器更高,更窄。

因此,算法同(A>1的情况中的算法2,3)

5. 若A' = A,这时被加载图片和容器宽高比率相同。

因此,W'' = W, H'' = H;

 

 

在A=1的情况下

1. 若A'>A,这时被加载图片相对容器更宽,更矮。

因此,算法同(A>1的情况中的算法1)

2. 若A'<A,这时被加载图片相对容器更高,更窄。

因此,算法同(A>1的情况中的算法2,3)

3. 若A' = A,W'' = W, H'' = H.

 

综合上述三种情况,可以得出以下结论:

若被加载图片相对容器更宽,更矮:

即当A' > A时,W'' = W, H'' = W / A';

若被加载图片相对容器更高,更窄:

即当A' < A时,H'' = H, W'' = H * A';

若被加载图片宽高比与容器相当:

即当A' = A时,W'' = W, H'' = H。

 

测试文件已经上传,欢迎大家评点

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swiper全屏自适应轮播图片尺寸是指使用Swiper这个轮播插件来实现全屏自适应图片尺寸展示。Swiper是一个基于原生JavaScript的轮播插件,可以通过设置参数来实现全屏自适应的效果。 首先,我们需要准备好轮播图片,保证图片尺寸符合要求。一般来说,我们最好将图片尺寸设置为与屏幕分辨率相同或者相近的大小,这样可以在不同的设备上展示出较高的清晰度。 然后,在HTML中引入Swiper的CSS和JS文件,并创建一个容器来放置轮播图片。 接下来,在JavaScript中初始化Swiper插件,设置相关参数。其中,我们需要将轮播容器的宽度和高度设置为100%来实现全屏自适应的效果。可以将容器的宽度和高度设置为浏览器视口的宽度和高度,使用`window.innerWidth`和`window.innerHeight`来获取。 另外,我们还可以设置`effect`参数为"slide"或者"fade",来定义轮播的切换效果。还可以设置`autoplay`参数为true,来自动播放轮播图片。 最后,加载页面时,Swiper会自动根据设置的参数和轮播容器的尺寸适应图片展示。当屏幕尺寸改变时,Swiper会自动重新计算并调整图片尺寸,以达到全屏自适应的效果。 综上所述,通过设置合适的参数和容器尺寸,我们可以实现Swiper全屏自适应轮播图片的效果。这样,无论在不同的设备上,轮播图片都能以适应屏幕的方式展示,提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值