在uniapp中实现图片不动的效果<sub>
1</sub>
,是在前端开发中比较常见的需求,其主要目的就是为了在页面滚动的时候,让部分内容保持原来的位置,不随着滚动而移动,也就是常说的页面固定效果。下面我将从实现原理、具体实现步骤等方面,为大家详细介绍一下在uniapp中实现图片不动效果的方法。
实现原理
首先,我们需要了解一下要实现图片不动的效果,需要用到position CSS属性,而position属性的值主要有以下几种:
static:默认属性,没有定位效果,位置由元素在文档流中的位置决定。
relative:相对定位,对该元素设置相对定位后,可以通过top、right、bottom、left属性进行微调。
absolute:绝对定位,对该元素设置绝对定位后,可以通过top、right、bottom、left属性进行微调,并且该元素会脱离文档流。
fixed:固定定位,对该元素设置固定定位后,可以通过top、right、bottom、left属性进行微调,并且该元素会相对于浏览器窗口进行定位。
因此,要实现图片不动的效果,我们需要把要固定的元素设置为position: fixed,然后再通过top、right、bottom、left属性进行微调,使其达到想要的效果。
具体实现步骤
步骤一:在页面中添加需要固定的元素
首先,在页面中添加需要固定的元素,可使用<img>
标签来添加图片,也可使用<div>
标签来添加其他内容。例如:
<template>
<div class="container">
<img src="../static/images/fixedImg.jpg" class="fixed-img" />
<div class="content">
<p>这是一个需要滚动的内容,需要保持原来位置不动……</p>
<p>这也是一个需要滚动的内容,需要保持原来位置不动……</p>
</div>
</div>
</template>
步骤二:在CSS中设置需要固定的元素样式
接下来,在CSS中设置需要固定的元素样式,一般是设置position、top、left、right、bottom等属性。例如:
.fixed-img {
position: fixed;
top: 50px;
left: 50px;
width: 200px;
height: 200px;
}
.content {
margin-top: 400px; /* 设置图片距离顶部的距离 + 图片高度 */
padding: 20px;
}
步骤三:设置父容器高度
由于固定的元素会脱离文档流,因此在固定元素下方的其他内容可能会顶上去,因此需要在父容器上设置高度,以保证其他内容正常显示。例如:
.container {
position: relative;
height: 1000px; /* 需要保证高度大于等于所有子元素高度之和 */
overflow: scroll;
}
步骤四:设置滚动容器
为了让页面可以滚动,需要为父容器设置overflow: scroll或overflow: auto属性,以便于内部内容超出父容器部分能够滚动。例如:
.container {
position: relative;
height: 1000px;
overflow: scroll;
}
综上,我们可以得出完整的实现代码,如下所示:
<template>
<div class="container">
<img src="../static/images/fixedImg.jpg" class="fixed-img" />
<div class="content">
<p>这是一个需要滚动的内容,需要保持原来位置不动……</p>
<p>这也是一个需要滚动的内容,需要保持原来位置不动……</p>
</div>
</div>
</template>
<style>
.fixed-img {
position: fixed;
top: 50px;
left: 50px;
width: 200px;
height: 200px;
}
.content {
margin-top: 400px;
padding: 20px;
}
.container {
position: relative;
height: 1000px;
overflow: scroll;
}
</style>
总结
通过上述步骤,我们可以很方便地实现在uniapp中实现图片不动效果,无论是移动端页面还是电脑端页面都可以使用。希望本篇文章能够对大家有所帮助,谢谢阅读!
参考文献
《uni-app官方文档》
张敏.前端开发技术与案例分析.机械工业出版社,2020.