微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript中的div的随机位置

我试图让Divs随机出现在带有 javascript的网页上.所以一个div出现然后消失,然后另一个div出现在页面上的其他地方,然后消失,然后另一个div再次出现在页面上的另一个随机位置,等等.
我不知道如何生成随机单位的像素或使用什么技术来生成随机位置.

我怎么做?这是我的代码

var currentDivPosition = myDiv.offset(),myDivWidth = myDiv.width(),myDivHeight = myDiv.height(),var myDiv = $('<div>'),finalDivPositionTop,finalDivPositionLeft;

myDiv.attr({ id: 'myDivId',class: 'myDivClass' }); // already defined with position: absolute is CSS file.

// Set new position     
finalDivPositionTop = currentDivPosition.top + Math.floor( Math.random() * 100 );
finalDivPositionLeft = currentDivPosition.left + Math.floor( Math.random() * 100 );

myDiv.css({ // Set div position
  top: finalDivPositionTop,left: finalDivPositionLeft
});

$('body').append(myDiv);

myDiv.text('My position is: ' + finalDivPositionTop + ',' + finalDivPositionLeft); 

myDiv.fadeIn(500);

setTimeout(function(){

  myDiv.fadeOut(500);

  myDiv.remove();       

},3000);

解决方法

这是一种方法.我随机地将div的大小在一个固定的范围内变化,然后设置位置,使对象总是放置在当前窗口边界内.
(function makeDiv(){
    // vary size for fun
    var divsize = ((Math.random()*100) + 50).toFixed();
    var color = '#'+ Math.round(0xffffff * Math.random()).toString(16);
    $newdiv = $('<div/>').css({
        'width':divsize+'px','height':divsize+'px','background-color': color
    });

    // make position sensitive to size and document's width
    var posx = (Math.random() * ($(document).width() - divsize)).toFixed();
    var posy = (Math.random() * ($(document).height() - divsize)).toFixed();

    $newdiv.css({
        'position':'absolute','left':posx+'px','top':posy+'px','display':'none'
    }).appendTo( 'body' ).fadeIn(100).delay(1000).fadeOut(500,function(){
      $(this).remove();
      makeDiv(); 
    }); 
})();

编辑:为了乐趣,添加一个随机的颜色.

编辑:添加.remove(),所以我们不用旧的div污染页面.

示例:http://jsfiddle.net/redler/QcUPk/8/

原文地址:https://www.jb51.cc/js/152727.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐