Javascript 如何将.service内部元素保持在同一位置,同时一次滚动一个服务部分?
我正在尝试创建一个布局,如果用户从第一个部分向下滚动,用户将能够一次滚动一个服务部分,我希望第一个部分在第二个部分消失到与第一个部分相同的位置之前消失 这里有一个指向js bin的链接单击[此处]()Javascript 如何将.service内部元素保持在同一位置,同时一次滚动一个服务部分?,javascript,html,css,gsap,Javascript,Html,Css,Gsap,我正在尝试创建一个布局,如果用户从第一个部分向下滚动,用户将能够一次滚动一个服务部分,我希望第一个部分在第二个部分消失到与第一个部分相同的位置之前消失 这里有一个指向js bin的链接单击[此处]() 一、二、三、四 { 填充:0px; 边际:0px; 身高:100%; 位置:绝对位置; 显示器:flex; 证明内容:中心; 对齐项目:居中; 字体大小:3rem; 右:0px; 左:0px; 背景色:黑色!重要; } #一个{ 顶部:0px; } #两个{ 最高:100%; } #三{ 最高:2
一、二、三、四
{
填充:0px;
边际:0px;
身高:100%;
位置:绝对位置;
显示器:flex;
证明内容:中心;
对齐项目:居中;
字体大小:3rem;
右:0px;
左:0px;
背景色:黑色!重要;
}
#一个{
顶部:0px;
}
#两个{
最高:100%;
}
#三{
最高:200%;
}
#四{
最高:300%;
}
.集装箱外部{
溢出:隐藏;
边际:0px;
填充:0px;
宽度:100%;
身高:100%;
位置:相对位置;
}
.货柜内{
溢出:自动;
位置:固定;
宽度:100%;
身高:100%;
填充:30px;
边框:30px实心#131313;
边际:0px;
填充:0px;
}
.容器内部::-webkit滚动条{
显示:无;
}
事业
服务
关于
找到我们
服务
这句话的意思是:“我的天哪,我的天哪,我的天哪,我的天哪,我的天哪,我的天哪,我的天哪。”
我要坐在床上,我要坐在床上,我要坐在床上,我要坐在床上,我要坐在床上
同侧坐着或同侧坐着或同侧坐着或同侧坐着或同侧坐着
我的同道坐着或我的同道坐着或我的同道坐着或我的同道坐着或我的同道坐着或我的同道坐着
(功能(容器){
$.fn.stopatop=函数(serv){
var$this=这个,
$container=$(“.container-inner”),
thisPos=$this.offset().top,
//thisPreservedTop=$this.css(“top”),
设置位置,
在下面
结束
在=函数()下{
if($(“.container-inner”).scrollTop()服务内部”);
$('two').stopAtTop($('two>.serviceinner”);
$(“#三”).stopAtTop($(“#三>.serviceinner”);
$(“#四”).stopAtTop($(“#四>.service-inner”);
#one, #two, #three, #four
{
padding: 0px;
margin: 0px;
height:100%;
position:absolute;
display:flex;
justify-content:center;
align-items:center;
font-size:3rem;
right: 0px;
left: 0px;
background-color:black!important;
}
#one {
top:0px;
}
#two {
top:100%;
}
#three {
top:200%;
}
#four {
top:300%;
}
.container-outer{
overflow: hidden;
margin:0px;
padding:0px;
width:100%;
height:100%;
position:relative;
}
.container-inner{
overflow:auto;
position:fixed;
width:100%;
height:100%;
padding:30px;
border:30px solid #131313;
margin:0px;
padding:0px;
}
.container-inner::-webkit-scrollbar {
display: none;
}
</style>
</head>
<body itemscope itemtype ="http://schema.org/LocalBusiness">
<div class="cursor"></div>
<div class="cursor"></div>
<div class="container-outer">
<div class="container-inner" id="fullpage">
<nav>
<a class="careers">CAREERS</a>
<a class="services">SERVICES</a>
<a class="about">ABOUT</a>
<a class="find-us">FIND US</a>
</nav>
<div class="slogan">
<h1>SERVICES</h1>
</div>
<div id="one" class="outer section">
<div class="service-inner first">
<p class="service-title-first"></p>
<p class="service-para-first">
Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor
</p>
</div>
</div>
<div id="two" class="outer section">
<div class="service-inner second">
<p class="service-title-second"></p>
<p class="service-para-second">Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor</p>
</div>
</div>
<div id="three" class="outer section">
<div class="service-inner third">
<p class="service-title-third"></p>
<p class="service-para-third">Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor</p>
</div>
</div>
<div id="four" class="outer section">
<div class="service-inner fourth">
<p class="service-title-fourth "></p>
<p class="service-para-fourth ">Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor Amet Lorem Ipsum Sit Dolor</p>
</div>
</div>
</div>
</div>
<script>
(function(container){
$.fn.stopAtTop= function (serv) {
var $this = this,
$container = $(".container-inner"),
thisPos = $this.offset().top,
//thisPreservedTop = $this.css("top"),
setPosition,
under,
over;
under = function(){
if ($(".container-inner").scrollTop() < thisPos) {
TweenMax.to($this, 0, {"position":"absolute","top":""});
setPosition = over;
}
};
over = function(){
if (!($(".container-inner").scrollTop() < thisPos) ){
TweenMax.to(serv.prev(".service-inner").find('.service-inner'), 1, {"opacity":"0"});
TweenMax.to($this, 0, {"position":"sticky","top":"0px"});
TweenMax.to(serv, 1, {"opacity":"1"});
setPosition = under;
}
};
setPosition = over;
$container.resize(function()
{
bumperPos = pos.offset().top;
thisHeight = $this.outerHeight();
setPosition();
});
$container.scroll(function(){setPosition();});
setPosition();
};
})($(".container-inner"));
$('#one').stopAtTop($("#one > .service-inner"));
$('#two').stopAtTop($("#two > .service-inner"));
$('#three').stopAtTop($("#three > .service-inner"));
$('#four').stopAtTop($("#four > .service-inner"));
</script>