Как получить реальную коробку больше, чем другие? - PullRequest
0 голосов
/ 15 июня 2011

Я новичок в JavaScript, и у меня возникла проблема. Я хочу, чтобы фактическое (функция updateBoxes) box [boxIx] было больше, чем другие, но я не могу найти код, который работает. я пробовал box [boxIx] .size = "100px"; box [boxIx] .style.size = "100px"; без результата. Это мой код;

function init() {

    box = document.getElementById("boxes").getElementsByTagName("div");
    for (var i=0; i<box.length; i++) {
        box[i].style.left = 70*i+"px";
    } // End for

    boxIx = box.length - 8;
    updateBoxes();
} // End init

function browseLeft() {
    if (boxIx > 0) boxIx = boxIx - 1;
    updateBoxes();
} 
// End browseLeft

function browseRight() {
    if (boxIx < box.length-1) boxIx = boxIx + 1;
    updateBoxes();}
 // End browseRight


**function updateBoxes() {

    box[boxIx].style.backgroundColor ="#CCC";
    box[boxIx].style.top = "20px";
    box[boxIx].style.zIndex = 9;**


    var z = 8;
    for (var i=boxIx-1; i>=0; i--) {
        box[i].style.backgroundColor ="#666";
        box[i].style.top = "0px";
        box[i].style.zIndex = z;
        z = z - 1;
    } // End for

    z = 8;
    for (var i=boxIx+1; i<box.length; i++) {
        box[i].style.backgroundColor = "#666";
        box[i].style.top = "0px";
        box[i].style.zIndex = z;
        z = z - 1;
    } // End for
} // End browseLeft

1 Ответ

1 голос
/ 17 июня 2011

Как указал тридцатка, в вашем примере кода есть два экземпляра "**", которые я удалил в предположении, что это ошибка уценки при редактировании.

Ваш пример показывает только код JavaScript. HTML-разметка и CSS-стили, которые вы используете, были бы наиболее полезными. Я создал скрипку для обсуждения и решения этой проблемы здесь: http://jsfiddle.net/bhofmann/zkZMD/

Несколько вещей, которые я заметил, которые могут быть полезны:

  1. Вы используете магическое число 8 в нескольких местах. Можем ли мы предположить, что это количество ящиков? Я бы сохранил это в переменной для использования в функциях.
  2. Вы использовали много прямых стилей. Ваш код может быть чище, если вы использовали CSS-классы для изменения внешнего вида блоков.
  3. Если вы не измените стиль DIV по умолчанию, вы не увидите больших изменений, просто установив левое смещение.

PS. Я взял на себя смелость вызывать функцию init при загрузке страницы, потому что не видел ничего другого, чтобы вызвать ее. Я не знаю, что вызвало бы browseLeft и browseRight, но я оставлю это вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...