javascript - 我怎么知道命运之轮板上何时有新线?

标签 javascript html css

我下面的代码here您可以在其中与一个人玩类似命运之轮的游戏(我对 javascript 对象的更多测试)。

我的问题是,当屏幕足够小时,线条似乎无法正确断开。

例如:

在圆圈所在的位置,我有一个“空白”正方形。我有一个空白方 block 的原因是当屏幕足够大时,方 block 可以作为单词之间的空间。

我的代码中有没有一种方法可以有效地知道空白方 block 是否在行尾并且不显示它,然后调整窗口大小以相应地显示它?

我唯一的想法是添加一个 window.onresize 事件,该事件将衡量单词的大小与游戏空间的大小相关,并根据该事实做出决定,但这似乎很效率低下。

这是我创建游戏板的代码(从 my fiddle 中的第 266 行开始):

WheelGame.prototype.startRound = function (round) {
    this.round = round;
    this.lettersInPuzzle = [];
    this.guessedArray = [];
    this.puzzleSolved = false;
    this.currentPuzzle = this.puzzles[this.round].toUpperCase();
    this.currentPuzzleArray = this.currentPuzzle.split("");
    var currentPuzzleArray = this.currentPuzzleArray;
    var lettersInPuzzle = this.lettersInPuzzle;
    var word = document.createElement('div');
    displayArea.appendChild(word);
    word.className = "word";
    for (var i = 0; i < currentPuzzleArray.length; ++i) {
        var span = document.createElement('div');
        span.className = "wordLetter ";

        if (currentPuzzleArray[i] != " ") {
            span.className += "letter";
            if (!(currentPuzzleArray[i] in lettersInPuzzle.toObject())) {
                lettersInPuzzle.push(currentPuzzleArray[i]);
            }
            word.appendChild(span);
        } else {
            span.className += "space";
            word = document.createElement('div');
            displayArea.appendChild(word);
            word.className = "word";
            word.appendChild(span);
            word = document.createElement('div');
            displayArea.appendChild(word);
            word.className = "word";
        }

        span.id = "letter" + i;
    }

    var clear = document.createElement('div');
    displayArea.appendChild(clear);
    clear.className = "clear";
};

最佳答案

与 JavaScript 不同,这听起来更像是 CSS 的工作,它在处理居中文本时始终解决这个问题。

考虑这样的事情:

CSS

#board {
    text-align: center;
    border: 1px solid blue;
    font-size: 60pt;
}

.word {
    display: inline-block;
    white-space: nowrap; /* Don't break up words */
    margin: 0 50px; /* The space between words */
}

.word span {
    display: inline-block;
    width: 100px;
    border: 1px solid black
}

HTML

<div id="board">
    <span class="word"><span>W</span><span>h</span><span>e</span><span>e</span><span>l</span></span>
    <span class="word"><span>o</span><span>f</span></span>
    <span class="word"><span>F</span><span>o</span><span>r</span><span>t</span><span>u</span><span>n</span><span>e</span></span>
</div>

这是一个 fiddle (尝试调整输出 Pane 的大小)。

关于javascript - 我怎么知道命运之轮板上何时有新线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972065/

相关文章:

javascript - 将 UNIX 转换为 HH-MM-SS Javascript

css - 如何制作与其他元素重叠的弹出窗口?

Web 辅助功能屏幕阅读器无法读取 JavaScript 弹出对话框

javascript - 如何在字符串上正确替换()

html - 如何在不添加文本的情况下使 div 背景可见

javascript改变innerHTML

html - 将数千张小图像加载到网页上

jquery - 如何制作 float 网站聊天按钮翻译

css - ie8中的寻呼机占用额外空间

javascript - 我如何确定一个对象在 Javascript 中是 "custom"?