0

配列内の事前定義された位置のリストからdivの位置をランダム化しようとしましたが、成功していません。近いかもしれませんが、どこが間違っているのかわかりません。

var positionArray = [];

    function Position(left, top) {
        this.left=left;
        this.top=top;
    }

    function rand(ar){
        return 0.5-Math.random();
    }

    var positionArray = [
          new Position(0,  0) 
        , new Position(50, 50) 
        , new Position(100,100) 
        , new Position(150,150) 
        , new Position(200,200) 
        , new Position(250,250) 
        , new Position(300,300) 
        , new Position(350,350) 
    ];

    function init() {                
            var min = 0;
            var max = 7;
            var posIndex = Math.floor(Math.random() * (max - min + 1)) + min;
            alert(posIndex)                               
            $(".start-journey-marker").css({
                top     : positionArray[posIndex].top,
                left    : positionArray[posIndex].left
            });
    };

    positionArray.sort(rand);

    init(); 

ここで例を参照してください: http://jsfiddle.net/qQWYW/

助けてください。

4

3 に答える 3

1

CSStopを有効にするには、要素にorleftを追加する必要があります。(編集:または追加。)position : relativeposition : absoluteposition : fixed

また、jQuery (左側のフレームワーク パネル) が含まれていなかったため、デモは機能しませんでした。

更新されたデモ: http://jsfiddle.net/qQWYW/1/

于 2013-03-07T10:49:52.747 に答える
0

スタイリングの問題です。追加するだけ

position: absolute;

あなたの.start-journey-markerセレクターに。

PS jQueryを含めるのを忘れたため、フィドルでは機能しません。

于 2013-03-07T10:49:50.593 に答える
0

.start-journey-markercssに position プロパティを追加してください

于 2013-03-07T10:51:06.903 に答える