将预加载器添加到div标签

we have an ajax script that gets a word and loads some related data into a div tag.

it works fine but we want to add preloader (without jQuery) to div tag, we tried spin.js but it works only for whole page, this is what we did: (Summarized)

<head>
<script src="spin.min.js"></script>
</head>

<body>
 <div id="data">

 //data loads here

 </div>

<script type="text/javascript" charset="utf-8">
var opts = {
  lines: 13, // The number of lines to draw
  length: 7, // The length of each line
  width: 4, // The line thickness
  radius: 28, // The radius of the inner circle
  rotate: 0, // The rotation offset
  color: '#000', // #rgb or #rrggbb
  speed: 1, // Rounds per second
  trail: 92, // Afterglow percentage
  shadow: false, // Whether to render a shadow
  hwaccel: false, // Whether to use hardware acceleration
  className: 'spinner', // The CSS class to assign to the spinner
  zIndex: 2e9, // The z-index (defaults to 2000000000)
  top: 'auto', // Top position relative to parent in px
  left: 'auto' // Left position relative to parent in px
};
var target = document.getElementById('data');
var spinner = new Spinner(opts).spin(target);
</script>


</body>

what is wrong? and any other (and better) solutions?

Your data div has full width and spin.js will place the image at the center of the element both vertically and horizontally thats why you are seeing this on a full screen based.

For e.g.

<head>
    <script src="spin.js"></script>
</head>
<body>
    <div id="data" style="width: 100px; height: 100px; float: left;">
        <!-- Data Loads Here-->
    </div>
    <div id="NoData" style="width: 100px; height: 100px; float: left;">
        Hello Hi Bye
    </div>
    <script type="text/javascript" charset="utf-8">
        var opts = {
            lines : 13, // The number of lines to draw
            length : 7, // The length of each line
            width : 4, // The line thickness
            radius : 28, // The radius of the inner circle
            rotate : 0, // The rotation offset
            color : '#000', // #rgb or #rrggbb
            speed : 1, // Rounds per second
            trail : 92, // Afterglow percentage
            shadow : false, // Whether to render a shadow
            hwaccel : false, // Whether to use hardware acceleration
            className : 'spinner', // The CSS class to assign to the spinner
            zIndex : 2e9, // The z-index (defaults to 2000000000)
            top : 'auto', // Top position relative to parent in px
            left : 'auto' // Left position relative to parent in px
        };
        var target = document.getElementById('data');
        var spinner = new Spinner(opts).spin(target);
    </script>
</body>