transition
CSS中的属性一步一步地工作; 起始值和结束值必须是相同的格式.不幸的是,position: fixed;
和position: absolute;
是两个完全不同的值,即使他们都property
值.
你正在寻找的行为确实存在于CSS中,并且被称为粘性定位,尽管它的支持非常有限.这是一个工作演示(确保您使用支持的浏览器):
html, body {
margin: 0;
}
body * {
margin: 20px;
padding: 20px;
}
.header {
margin: 0;
padding: 20px;
background: #000;
}
.header span {
display: block;
color: #fff;
margin: 0 auto;
text-align: center;
padding: 0;
}
.placeholder {
border: 1px solid black;
margin: 0 auto;
text-align: center;
height: 300px;
}
.slider {
background: #006264;
color: white;
font-weight: bold;
margin: 0 auto;
position: sticky;
-webkit-position: sticky;
top: 0px;
}
This is a header
This div holds place
This should slide up and then stick.
This div holds place
This div holds place
This div holds place
This div holds place
因此,如果您希望广泛支持该行为,则需要使用JavaScript,并且您还需要使用JavaScript来添加平滑的"过渡"动画.
transition
CSS中的属性一步一步地工作; 起始值和结束值必须是相同的格式.不幸的是,position: fixed;
和position: absolute;
是两个完全不同的值,即使他们都property
值.
你正在寻找的行为确实存在于CSS中,并且被称为粘性定位,尽管它的支持非常有限.这是一个工作演示(确保您使用支持的浏览器):
html, body {
margin: 0;
}
body * {
margin: 20px;
padding: 20px;
}
.header {
margin: 0;
padding: 20px;
background: #000;
}
.header span {
display: block;
color: #fff;
margin: 0 auto;
text-align: center;
padding: 0;
}
.placeholder {
border: 1px solid black;
margin: 0 auto;
text-align: center;
height: 300px;
}
.slider {
background: #006264;
color: white;
font-weight: bold;
margin: 0 auto;
position: sticky;
-webkit-position: sticky;
top: 0px;
}
This is a header
This div holds place
This should slide up and then stick.
This div holds place
This div holds place
This div holds place
This div holds place