1. JavaScript / Говнокод #6823

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function randlogo(){
    arr=new Array('<img src="http://site.com/logo-pomegranate.png" border="0" width="677" height="345">','<img src="http://site.com/logo-leaves.png" border="0" width="677" height="345">','<img src="http://site.com/logo-lime.png" border="0" width="677" height="345">','<img src="http://site.com/logo-coffee.png" border="0" width="677" height="345">','<img src="http://site.com/logo-lime.png" border="0" width="677" height="345">','<img src="http://site.com/logo-peach.png" border="0" width="677" height="345">','<img src="http://site.com/logo-lemon.png" border="0" width="677" height="345">','<img src="http://site.com/logo-leaf.png" border="0" width="677" height="345">','<img src="http://site.com/logo-apples.png" border="0" width="677" height="345">','<img src="http://site.com/logo-grapes.png" border="0" width="677" height="345">','<img src="http://site.com/logo-autumn.png" border="0" width="677" height="345">','<img src="http://site.com/logo-strawberry.png" border="0" width="677" height="345">')
    rand=Math.floor(Math.random()*arr.length)
    document.getElementById('randlogo').innerHTML=arr[rand]
    }
    randlogo()

    Код для генерации случайного логотипа.

    Запостил: undiscovered, 02 Июня 2011

    Комментарии (18) RSS

    • показать все, что скрытоДва чая тому, кто напишет лучше.
      Ответить
      • ну хотя бы в массиве хранить путь к картинке
        Ответить
      • Вместо того чтобы передавать внутренний html для div'a, можно было присвоить некоторый id тегу img и уже туда передавать значение src.

        Что то вроде этого:
        function randlogo() {
        arr=new Array('logo-pomegranate.png','logo-leaves.png','logo-lime.png','logo-coffee.png','logo-lime.png','logo-peach.png','logo-lemon.png','logo-leaf.png','logo-apples.png','logo-grapes.png','logo-autumn.png','logo-strawberry.png');
        document.getElementById('randlogo').setAttribute('src', 'http://site.com/'+arr[Math.floor(Math.random()*arr.length)]); }
        randlogo()
        Ответить
        • заслужил чай.
          только нахуй setAttribute('src',''); если есть еще .src =
          Ответить
        • а еще то же самое сделать и с аттрибутами width и height, что бы картинка не скакала, пока загружается.
          Ответить
        • Тут главное моральное уродство кода в том, что внутри функции скорее всего объявляются и каждый раз переинициализируются глобальные переменные. А то, что не эффективно, или много буков, это, конечно, тоже плохо, но меньшее зло, если смотреть во вселенском масштабе.
          Ответить
          • кстати, замечание дельное. и правда, "arr=new Array" можно вынести за пределы функции. А еще лучше сделать это на сервере
            Ответить
          • если уж буковки экономить, то делать массив литералом, а функцию анонимной

            хотя мне как неговнодизигнору нихера непонятно зачем показывать картинку произвольного цвета
            Ответить
            • Там не цвета разные показывает, а различное оформление логотипа.
              Ответить
            • var r=(function(){
                  var a=["pomegranate","leaves","lime","coffee",
              	   "lime","peach","lemon","leaf","apples",
              	   "grapes","autumn","strawberry"];
                  return function(){
              	document.getElementById("randlogo").src=
              	    "http://site.com/logo-"+a[Math.random()*a.length|0]+".png";};)();
              r();

              Ну и, для лучшей читаемости убрать переносы строк и таблюцию. + еще можно убрать несколько точек с запятой, но для порядку пусть будут. А разные логотипы - ну так а может в этом-то и суть :)
              Ответить
              • вот и вылезло, что логотип с известкой в массиве дважды
                или это такой говновес?
                Ответить
                • хехе, а я сразу не заметил. Ну, делать дополнительный массив с весами только ради того, чтобы показать один из логотипов с удвоенной вероятностью - я думаю, будет лишним. + это скорее всего ошибка.
                  Ответить
            • Рука дрогнула, и одной закрывающей фигурной скобки не хватило :)
              Ответить
    • Прочитал: Код для дегенерации.
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий