简体   繁体   中英

How to add display:inline-block to jQuery fadeIn

I'm running into an issue where I am attempting to get inline-block elements to display: none on page load, but then I want them to fadeIn one by one in their original inline-block form. However, when I do a normal jQuery fadeIn the elements display as block.

My jQuery is like this right now:

function blueBoxDelays(){
    $('.fadeBlock1').delay(200).fadeIn(500);
    $('.fadeBlock2').delay(400).fadeIn(500);
};

CSS

.dark-blue-box, .light-blue-box {
    height: 50%;
    width: 25%;
    display: inline-block;
    /*display: none;   ********I replaced the inline-block with this.
    vertical-align: top;
    padding: 0;
    margin: 0;
    transition: all .8s ease-in-out;
}

Is there something I can do to the jQuery to get these to fadeIn as inline-block elements?

You can try this,

 $(document).ready(function(e) { $('.fadeBlock').css('display','none'); blueBoxDelays(); function blueBoxDelays(){ var delay = 0; $('.fadeBlock').each(function(i){ $(this).delay(400+delay).fadeIn(1000); delay = 400*(i+1); }); }; }); 
 .fadeBlock { height: 100px; width: 100px; display: inline-block; } .dark-blue-box{ background-color: blue; } .light-blue-box{ background-color: yellow; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="dark-blue-box fadeBlock"></div> <div class="light-blue-box fadeBlock"></div> <div class="dark-blue-box fadeBlock"></div> <div class="light-blue-box fadeBlock"></div> <div class="dark-blue-box fadeBlock"></div> <div class="light-blue-box fadeBlock"></div> 

DEMO

Note:

Remove the opacity from .dark-blue-box, .light-blue-box

you could achieve the desired result by using opacity with transition property.

initially it'd be

.fadeBlock1 {
   opacity:0;
   transition: all 0.5s ease-in-out;
 }

$('.fadeBlock1').css('opacity','1');

Do you want something like this??

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <style>
        .dark-blue-box{
            display:inline-block;
            border:1px solid #19248c;
            background-color:#19248c;
            height:50px;
            width:50px;
         }
        .light-blue-box{
            display:inline-block;
            border:1px solid #6699cc;
            background-color:#6699cc;
            height:50px;
            width:50px;
        }
    </style>
</head>
<body>
    <div class='dark-blue-box'>
    </div>
    <div class='light-blue-box'>
    </div>  

    <script>
    $(document).ready(function(e) {
        $('.dark-blue-box').css('display','none');
        $('.light-blue-box').css('display','none');
        boxFadeIn();
    });

    function boxFadeIn(){
        $('.dark-blue-box')
          .delay(200)
          .fadeIn(500)
          .queue(function (next) { 
            $(this).css('display', 'inline-block'); 
            next(); 
          });

        $('.light-blue-box')
          .delay(400)
          .fadeIn(500)
          .queue(function (next) { 
            $(this).css('display', 'inline-block'); 
            next(); 
          });
    }
    </script>
</body>
</html>

try this one

function blueBoxDelays(){
    $('.fadeBlock1').delay(200).fadeIn(500).css('display','inline-block');
    $('.fadeBlock2').delay(400).fadeIn(500).css('display','inline-block');
};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM