- 需求如下:
为了实现一个状态在下拉到一定位置的时候,就要固定位置。使用js修改状状态栏的定位。
$(document).ready(function() {
$(document).scroll(function() {
var scroH = $(document).scrollTop();
var viewH = $(window).height();
var contentH = $(document).height();
if (scroH > 72) {
$(".introduce-wrap").css("position", "fixed")
}
if (scroH <= 72) {
$(".introduce-wrap").css("position", "absolute")
}
});
})
- 出现问题:
因为是响应式的,在切换成手机显示的时候,使用媒体查询,本来低于768px的时候是relative
。但是却没有效果。
@media screen and (max-width: 767px) {
.introduce-wrap {
position: relative;
top: 0;
right: 0;
width: auto;
margin: 0 0.32rem;
background: none;
border: none;
}
}
- 原因:
使用js修改过的定位值,无法再使用媒体查询换过来,也需要在js里面根据当前视口大小,来变更定位值。 - 解决:
在js文件新增修改定位的代码。
$(document).ready(function() {
$(document).scroll(function() {
var scroH = $(document).scrollTop();
var viewH = $(window).height();
var viewW = $(window).width();
var contentH = $(document).height();
if (scroH > 72) {
$(".introduce-wrap").css("position", "fixed")
}
if (scroH <= 72) {
$(".introduce-wrap").css("position", "absolute")
}
if (viewW <= 767) {
$(".introduce-wrap").css("position", "relative")
}
});
})