2017-10-04 7 views
0

スクロール中にパディングを増やすためにok divを作成しようとしていますが、スクロールを止めると元のパディングに戻ります。私はしかし、スクロールを動作させることはできません。本文スクロールでCSSとクラスを切り替える

FID:あなたを助けるスニペット以下https://jsfiddle.net/f8an2fvd/

$(function(){ 
 
$('body').on('scroll', function (e){ 
 
$('.ok').toggleClass('nah'); 
 
}); 
 

 
});
.ok{ 
 
    background:black; 
 
    width:100vw; 
 
    height:200vh; 
 
    position:relative; 
 
    padding:50px; 
 
} 
 
.inner{ 
 
    width:100%; 
 
    height:100%; 
 
    background:blue; 
 
} 
 
.nah{ 
 
    padding:100px !important; 
 
} 
 
*{ 
 
    box-sizing:border-box; 
 
    margin:0; 
 
    padding:0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="ok"> 
 
    <div class="inner"></div> 
 
</div>

答えて

1

チェック。ここ

$(function() { 
 
    $(window).scroll(function() { 
 
    $('.ok').addClass('nah'); 
 
    clearTimeout($.data(this, "scrollCheck")); 
 
    $.data(this, "scrollCheck", setTimeout(function() { 
 
     $('.ok').removeClass('nah'); 
 
    }, 250)); 
 
    }); 
 
});
.ok { 
 
    background: black; 
 
    width: 100vw; 
 
    height: 200vh; 
 
    position: relative; 
 
    padding: 50px; 
 
} 
 

 
.inner { 
 
    width: 100%; 
 
    height: 100%; 
 
    background: blue; 
 
} 
 

 
.nah { 
 
    padding: 100px !important; 
 
} 
 

 
* { 
 
    box-sizing: border-box; 
 
    margin: 0; 
 
    padding: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="ok"> 
 
    <div class="inner"></div> 
 
</div>

0

$(function(){ 
 
$(window).scroll(function(){ 
 
    $('.ok').addClass('nah'); 
 
    var stopListener = $(window).mouseup(function(){ 
 
     
 
     $('.ok').removeClass('nah'); 
 
     stopListner(); 
 
    }); 
 
}); 
 
});
.ok{ 
 
    background:black; 
 
    width:100vw; 
 
    height:200vh; 
 
    position:relative; 
 
    padding:50px; 
 
} 
 
.inner{ 
 
    width:100%; 
 
    height:100%; 
 
    background:blue; 
 
} 
 
.nah{ 
 
    padding:100px !important; 
 
} 
 
*{ 
 
    box-sizing:border-box; 
 
    margin:0; 
 
    padding:0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="ok"> 
 
    <div class="inner"></div> 
 
</div>

0

円滑にパディングを増加させ、スクロールトップ

var origional_padding = parseFloat(jQuery('.ok').css('padding')); 
var currentPadding = origional_padding; 
jQuery(window).scroll(function(){ 

    jQuery('.ok').css('padding', ++currentPadding + 'px'); 
    clearTimeout(jQuery.data(this, "scrollCheck")); 
       jQuery.data(this, "scrollCheck", setTimeout(function() { 
        jQuery('.ok').css('padding', origional_padding); 
       }, 250)); 
}); 
.ok{ 
    background:black; 
    width:100vw; 
    height:200vh; 
    position:relative; 
    padding:50px; 
} 
.inner{ 
    width:100%; 
    height:100%; 
    background:blue; 
} 
.nah{ 
    padding:100px !important; 
} 
*{ 
    box-sizing:border-box; 
    margin:0; 
    padding:0; 
} 

.ok{ 
    /* other CSS declarations ...*/ 
    -webkit-transition: padding .5s linear; 
     -moz-transition: padding .5s linear; 
     -ms-transition: padding .5s linear; 
     -o-transition: padding .5s linear; 
      transition: padding .5s linear; 
} 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="ok"> 
    <div class="inner"></div> 
</div> 
にリセットするためのコードであります
関連する問題