图片轮播组件
现在很多网站的主页中都会有图片轮播,图片轮播组件主要包含以下几部分:大图,缩略图,大图两侧的左右切换按钮,有可能还会在缩略图两侧有多组切换按钮。我们通常先实现效果,然后再通过js实现切换的交互逻辑。以下是我在实际编写轮播组件时总结的一些心得。
图片水平垂直居中等比例显示
轮播中显示的图片跟图片容器的尺寸比例不一定相同,有可能更‘胖’或者更‘瘦’,为了达到更好的视觉效果,我们保证图片可以在容器中完全显示,也就是始终按照超出比例的边来缩放图片。
要达到这个效果,最佳的方式是通过css来实现。
html代码
css
background-size: contain可以保证背景图片始终全部展示到容器中,而background-position: center保证图片可以居中显示。
使用css的这两个属性是实现该效果最简单的方式,如果我们想要使用js来实现类似效果,我们需要首先获取图片的长宽比例,然后手动设置按照哪一边来缩放图片比例。
html
对应的css代码
我们使用transform让图片进行平移自身的50%,对于未知宽高的元素建议采用这种方式,对于已知宽高的情况,我们可以采用margin的形式。
图片切换动画
轮播中图片在切换时会有一些特效,常见的有平移,淡入淡出等。
平移
平移我们可以使用元素的left,margin属性。最理想的方式是我们使用js来控制属性的值,通过transition来确定过渡效果。
当使用js修改了相应属性后,会执行相应的过渡动画效果。除了使用css来控制动画外,也可以全部使用css来实现。这里推荐使用requestanimateframe,使用这个方法,可以保证流畅的执行动画。
需要注意的是,为了保证元素的平移效果,首先需要保证各元素水平排列,可以使用两种方式
这里涉及到常见的水平垂直居中的一些技巧问题。我们做一个总结。
元素水平居中的方式
行内元素设置text-align
|
|
块级元素的水平居中
|
|
定位元素居中
|
|
元素垂直居中的方式
行高方式
|
|
行内元素
|
|
借助表格属性
|
|
定位元素
|
|