问题
I've created a single page with each page is a full page. I'm using jQuery library fullpage.js to do that.
My problem is: I want to change the CSS when the scroll event is active.
At Second Slide
and Four Slide
I want to change the position of 'nav.nav-next'
from 35% to 65% to straight in the line.
When I scroll the page it doesn't do anything.
Will be my JS code apply with Four Slide
?
Currently, my JS code like this:
var $navscroll = $('nav.nav-next');
$(document).scroll(function() {
alert($(this).scrollTop());
$navscroll.css({left: $(this).scrollTop()>10 ? "65%":"35%"});
});
I've to ask the question before, should create the height of body or a div. But it not working with me because I using fullpage.js
So, you can see my pen at here:
http://codepen.io/r0ysy0301/pen/RoyJOd
回答1:
Hi you could try has below, first make your fulllpage.js scrollbar
visible using below code and then again hide that using css
, thus this helps us to get scrollbar positioning
then using jquery
you can move your icons
. You even need to change your css icons poisition to fixed
.
scrollBar: true,
autoScrolling:false
HTML:
<ul id="menu">
<li data-menuanchor="firstPage"><a href="#firstPage">First slide</a></li>
<li data-menuanchor="secondPage"><a href="#secondPage">Second slide</a></li>
<li data-menuanchor="3rdPage"><a href="#thirdPage">Third slide</a></li>
<li data-menuanchor="4thpage"><a href="#finalPage">Four slide</a></li>
</ul>
<nav class="nav-next">
<button type="button" id="btn-next" class="btn i-down" style="background: rgb(10, 49, 80);">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="16" height="10" viewBox="0 0 16 10" enable-background="new 0 0 16 10" xml:space="preserve" style="fill: rgb(255, 255, 255);"><polygon points="14 0 8 6 2 0 0 2 8 10 16 2 "></polygon></svg>
<span class="btn-bg"></span>
<span class="btn-bg btn-bg-mask" style="background: rgb(10, 49, 80);"></span>
</button>
</nav>
<div id="fullpage">
<div class="section active" id="section0">
<div class="contentfit">
<div class="left-content"></div>
<div class="right-content">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsam, earum animi impedit, qui nobis repudiandae natus omnis deleniti excepturi itaque similique saepe. Sequi animi dolorum eum tenetur fugiat sed molestias!
</p>
</div>
</div>
</div>
<div class="section" id="section1">
<div class="contentfit">
<div class="right-content">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsam, earum animi impedit, qui nobis repudiandae natus omnis deleniti excepturi itaque similique saepe. Sequi animi dolorum eum tenetur fugiat sed molestias!
</p>
</div>
<div class="left-content"></div>
</div>
</div>
<div class="section" id="section2">
<div class="contentfit">
<div class="left-content"></div>
<div class="right-content">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsam, earum animi impedit, qui nobis repudiandae natus omnis deleniti excepturi itaque similique saepe. Sequi animi dolorum eum tenetur fugiat sed molestias!
</p>
</div>
</div>
</div>
<div class="section" id="section3">
<div class="contentfit">
<div class="right-content">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsam, earum animi impedit, qui nobis repudiandae natus omnis deleniti excepturi itaque similique saepe. Sequi animi dolorum eum tenetur fugiat sed molestias!
</p>
</div>
<div class="left-content"></div>
</div>
</div>
</div>
CSS :
::-webkit-scrollbar{
display:none;
}
.contentfit {
height: 100%;
position: relative;
}
.left-content {
float: left;
height: 100%;
position: relative;
width: 35%;
background: url("http://www.studiometa.fr/assets/img/projets/94/idcampus__larger.jpg") no-repeat;
background-size: cover;
background-position: center;
}
.right-content {
float: left;
width: 65%;
}
/* Button Next
* ------------------- */
.nav-next {
z-index: 99;
position: fixed;
left: 35%;
top: 60%;
/*display: none;*/
}
.i-down.btn {
padding: 0;
-webkit-transition: -webkit-transform 0.3s cubic-bezier(0.19, 1, 0.22, 1);
transition: transform 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}
.btn:hover {
color: white;
-webkit-transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}
.is-loaded .btn {
-webkit-transition: all 1s cubic-bezier(1, 0, 0, 1);
transition: all 1s cubic-bezier(1,0,0,1);
}
.i-down {
width: 3.4em;
height: 3.4em;
margin-left: -1.7em;
background: #292929;
color: white;
border: 0;
border-radius: 50%;
cursor: pointer;
}
.btn {
display: inline-block;
padding: 0.5em 1.33em;
font-weight: 700;
border: 2px solid;
cursor: pointer;
overflow: hidden;
-webkit-transform: translateZ(0);
transform: translateZ(0);
will-change: border, color;
}
.i-down svg {
z-index: 3;
display: inline-block;
vertical-align: middle;
fill: #fff;
width: 1em;
height: .625em;
-webkit-transition: -webkit-transform 0.3s cubic-bezier(0.19, 1, 0.22, 1);
transition: transform 0.3s cubic-bezier(0.19,1,0.22,1);
}
.nav-next .btn-bg:first-of-type {
z-index: 1;
}
.nav-next .btn-bg {
height: 100%;
margin: 0;
}
.i-down .btn-bg {
height: 100%;
padding-top: 0;
}
.btn-bg:first-of-type {
z-index: -2;
background: currentColor;
-webkit-transition: opacity 0.3s 0s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 0.4s 0.05s cubic-bezier(0.19, 1, 0.22, 1);
transition: opacity 0.3s 0s cubic-bezier(0.19, 1, 0.22, 1), transform 0.4s 0.05s cubic-bezier(0.19,1,0.22,1);
}
.btn-bg {
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 0;
padding-top: 100%;
padding-top: calc(100% + 2.66em);
border-radius: 100px;
opacity: 0;
-webkit-transform: translateY(-50%) scale(0);
-ms-transform: translateY(-50%) scale(0);
transform: translateY(-50%) scale(0);
will-change: transform, opacity;
}
.nav-next .btn-bg:last-of-type {
z-index: 2;
}
.nav-next .btn-bg {
height: 100%;
margin: 0;
}
.i-down .btn-bg {
height: 100%;
padding-top: 0;
}
.btn-bg:last-of-type {
z-index: -1;
background: #292929;
-webkit-transition: opacity 0.4s 0.1s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 0.4s 0s cubic-bezier(0.19, 1, 0.22, 1);
transition: opacity 0.4s 0.1s cubic-bezier(0.19, 1, 0.22, 1), transform 0.4s 0s cubic-bezier(0.19,1,0.22,1);
}
.btn-bg {
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 0;
padding-top: 100%;
padding-top: calc(100% + 2.66em);
border-radius: 100px;
opacity: 0;
-webkit-transform: translateY(-50%) scale(0);
-ms-transform: translateY(-50%) scale(0);
transform: translateY(-50%) scale(0);
will-change: transform, opacity;
}
Jquery:
$(window).on('scroll',function(){
var a = $("#section0").hasClass('active');
var b = $("#section1").hasClass('active');
var c = $("#section2").hasClass('active');
var d = $("#section3").hasClass('active');;
var navscroll = $('.nav-next');
if(a){
$(navscroll).css('left','35%');
}
if(b){
$(navscroll).css('left','65%');
}
if(c){
$(navscroll).css('left','35%');
}
if(d){
$(navscroll).css('left','65%');
}
});
$('#fullpage').fullpage({
sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE', 'whitesmoke', '#ccddff'],
anchors: ['firstPage', 'secondPage', '3rdPage', '4thpage', 'lastPage'],
menu: '#menu',
slidesNavigation: true,
scrollBar: true,
autoScrolling:false
});
来源:https://stackoverflow.com/questions/41030625/jquery-windows-scroll-event-not-working-in-fullpage-js