0

I'm trying to add css value with interval, when I try run with append it works well. But why it doesn't work when I try to increase css value like my code below.

How I can increase css value with interval?

$(document).ready(function(){
  var imgBg = $('.img-bg');
  var addBlur = $(imgBg).find('img');

  var blurVal = 0; 
  var filterBlur = {
    'filter' : 'blur('+blurVal+'px)',
    '-webkit-filter': 'blur('+blurVal+'px)',
    '-moz-filter': 'blur('+blurVal+'px)',
    '-o-filter': 'blur('+blurVal+'px)',
    '-ms-filter': 'blur('+blurVal+'px)'
  };
  
  //$(addBlur).css(filterBlur);
  
function blurLoop(){
  blurVal++;
  //$('.container').append('<p>test '+blurVal+'</p>');
  $(addBlur).css(filterBlur);
}
  
  var interval = setInterval(function(){
    var test = blurLoop();
    if(blurVal >= 5){
      clearInterval(interval);
    }
  },1000);
});
.container {
  width: 100%;
  paddding: 0 15px;
}

.header {
  position: relative;
  overflow: hidden;
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="header">
    <div class="img-bg">
      <img src="https://unsplash.it/200/300?image=0" alt="" />
      <img src="https://unsplash.it/200/300?image=0" alt="" />
    </div>
  </div>
</div>

1 Answer 1

2

$(document).ready(function(){
  var imgBg = $('.img-bg');
  var addBlur = $(imgBg).find('img');

  var blurVal = 0; 
 
  
  //$(addBlur).css(filterBlur);
  
function blurLoop(){
  blurVal++;
  
   var filterBlur = {
    'filter' : 'blur('+blurVal+'px)',
    '-webkit-filter': 'blur('+blurVal+'px)',
    '-moz-filter': 'blur('+blurVal+'px)',
    '-o-filter': 'blur('+blurVal+'px)',
    '-ms-filter': 'blur('+blurVal+'px)'
  };
  //$('.container').append('<p>test '+blurVal+'</p>');
  $(addBlur).css(filterBlur);
}
 
  var interval = setInterval(function(){
    var test = blurLoop();
  
    if(blurVal >= 5){
      clearInterval(interval);
    }
  },1000);
});
.container {
  width: 100%;
  paddding: 0 15px;
}

.header {
  position: relative;
  overflow: hidden;
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="header">
    <div class="img-bg">
      <img src="https://unsplash.it/200/300?image=0" alt="" />
      <img src="https://unsplash.it/200/300?image=0" alt="" />
    </div>
  </div>
</div>

Sign up to request clarification or add additional context in comments.

1 Comment

I see, the css should be store into function, so it will loop within it. Thank's for the help

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.