I have a div with text in it and a background image. When I load the page the text always appear 1st(assume i have low speed internet connection). How can i make the background image load before text? Can You please give me solution in both jquery and javascript
- 
                    Can this help? http://stackoverflow.com/questions/476679/preloading-images-with-jquery – Yoav Kadosh Dec 17 '12 at 16:41
 - 
                    I don't really understand I was going to suggest chucking java at the bottom – TheBlackBenzKid Dec 17 '12 at 16:43
 - 
                    For those answers suggesting the jQuery Load event, be sure to see the "caveats" section in the API: http://api.jquery.com/load-event/. As such, I'd probably suggest user1026361's answer, if you are ok w/ preloading the image. – Grinn Dec 17 '12 at 16:50
 
4 Answers
Add the text in the onload event handler for the image.
Note:  If you want to keep using a div tag with a background image rather than an img tag, you'll have to add the text during the window.onload event (see this answer for the details).
- 1,785
 - 2
 - 31
 - 38
 
- 8,342
 - 3
 - 33
 - 53
 
Assuming your div looks like this:
<div id="Derp" style="CSS-for-background-image-here">Magical ponies!</div>
I would try removing the text completely and then add this kind of jquery call:
<script>
    $(document).ready(function() {
        $('#Derp').load(function() {
            $('#Derp').text("Magical ponies!");
        });
    });
</script>
The $('#Derp').load(...) is the key here. See the docs for load(). It has an example of exactly what you need.
- 13,025
 - 6
 - 64
 - 100
 
you could populate the content onload.
Start with this:
<div id="content"></div>
Then, in jquery, do this:
 $(document).ready(function() {
    mybg= new Image(); 
    mybg.onload=function(){
      $('#content').html('YOURTEXTHERE');
    }
    mybg.src = "PATH/TO/IMG";
    });
- 3,627
 - 3
 - 22
 - 20
 
your simple answer is .load you can do when your window gets loaded fully and then text appears:
$(function(){
    $(window).load(function() {
        $('p').fadeIn(800);
    });
});
what this is doing is fading in the p tag with text when whole window gets loaded.
you can find a demo here: http://jsfiddle.net/a5P8b/
- 74,255
 - 12
 - 74
 - 103