Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с кодом (https://javascript.ru/forum/dom-window/9763-pomogite-s-kodom.html)

jey7 04.06.2010 15:05

Помогите с кодом
 
Помогите разобраться с кодом
Не пойму как с его помощью строится таблица

function GetGalleryHTML(arr, hor_count, width, height)
{
//реализация галлереи в виде таблицы
var html = "";
for(var i = 0 ; i < arr.length ; )
{
html += "";
for(var j = 0 ; j < hor_count ; ++j, ++i)
{
if(i < arr.length)
html += "";//выводим ячейку с изображением
else
html += "";//выводим пустую ячеку таблицы
}
html += "";
}
html += "";
return html;
}

Kolyaj 04.06.2010 15:09

А чё, правда чтоли строится?

jey7 04.06.2010 15:27

Цитата:

Сообщение от Kolyaj (Сообщение 57862)
А чё, правда чтоли строится?

Конечно она не строится, нет html элементов, просто дали кусок кода на котором нужно поставить галерею, вот я не могу разобраться что конкретно происходит :

var html = "";

html += "";

micscr 04.06.2010 15:44

Цитата:

var html = "";
Очевидно сюда:
var html = '<table width="' + width + '" height="' + height + '">';

дальше пробуйте сами.

jey7 04.06.2010 16:58

Сюда я так понимаю нужно вставить путь к картинке

if(i < arr.length) 
html += "";//выводим ячейку с изображением

наверно так:
html += "<img src="img/1.jpg" name="1"/>"
но он выводит заданную, а мне нужно достать с массива

такой вариант не катит
html += "<img src="arr[i]" name="1"/>"
или такой
 html += '<img src="img/" + count + ".jpg" name="1"/>'

Тыкаю пальцем в небо, как правильно будет подскажите?

micscr 04.06.2010 17:17

у тебя в цикле i и j меняются. Названия картинок походу в массиве переданном хранятся, вот и экспериментируй, я же не знаю что там за массив.
Цитата:

такой вариант не катит
html += "<img src="arr[i]" name="1"/>"
потому что с ошибками. Надо:

html += '"<img src="' + arr[i] + '" name="1"/>"';

jey7 04.06.2010 17:19

Цитата:

Сообщение от micscr (Сообщение 57868)
Очевидно сюда:
var html = '<table width="' + width + '" height="' + height + '">';

дальше пробуйте сами.

Я предаю параметры в функцию

document.write(GetGalleryHTML(images, 5, 100, 100));

и она явно не понимает что должна быть 100px*100px;
может это не правильно.

function GetGalleryHTML(arr, hor_count, width, height)
{
//реализация галлереи в виде таблицы
var html = '<table width="' + width + '" height="' + height + '">';
for(var i = 0 ; i < arr.length ; )
{
// по логике вешей я ниже должен вставить td
html += '<td>';
for(var j = 0 ; j < hor_count ; ++j, ++i)
{
if(i < arr.length)
html += "";//выводим ячейку с изображением
else
html += "";//выводим пустую ячеку таблицы
}
html += "</td>";// закрыть td???
}
html += "</table>";//закрыть table ???
return html;
}

micscr 04.06.2010 17:31

Ага, то размеры картинки. Значит вот это
html = '<table width="' + width + '" height="' + height + '">';

отбой.
Просто пиши
html = '<table>';

А вот эту часть:
width="' + width + '" height="' + height + '">';

выставляй каждой картинке.

jey7 04.06.2010 18:13

Класс. Спасибо вроде работает.

Вот мне интересно можно ли onmousedown или onclik затем работать с этими изображениями (увеличивать).

jey7 05.06.2010 10:57

Пробую передать в функцию параметры, чтоб вывести при клики полное изображение

html += '<img src="' + arr[i] + '" width="' + width + '" height="' + height + '" name="'+i+'" onmousedown="mouseover('+ arr[i] +','+ i +');"/>'; 
  
function mouseover (index, i)
        {
         document.images["'+i+'"].src = img[index].src;
        }


Возможно ли так сделать, что то не работает.

micscr 05.06.2010 11:09

Так а что ты делаешь - тот же src переприсвоил.
Вариант - надо узнать реальные размеры и их присвоить:
var im = new Image();
im.src = Существующая_картинка.src;	
Существующая_картинка.width = im.width
Существующая_картинка.height = im.height

im.width, im.height - родные размеры.

jey7 05.06.2010 11:44

Цитата:

Сообщение от micscr (Сообщение 57970)
Так а что ты делаешь - тот же src переприсвоил.
Вариант - надо узнать реальные размеры и их присвоить:
var im = new Image();
im.src = Существующая_картинка.src;	
Существующая_картинка.width = im.width
Существующая_картинка.height = im.height

im.width, im.height - родные размеры.

Так как картинки выводятся массивом значит мне видемо нужно подставлять Существующая_картинка i.width = im.width

какой то параметр который будет изменятся.
А как мне потом выводить?

jey7 10.06.2010 23:17

Пытаюсь по id при клике вывести например другое изображение (вообще в итоги хочу чтоб рядом просто выводилось в полный размер, но пока так)
<script type="text/javascript">

    var images = new Array ("img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg", "img/5.jpg", "img/6.jpg",
"img/7.jpg", "img/8.jpg", "img/9.jpg", "img/10.jpg", "img/11.jpg", "img/12.jpg",
"img/13.jpg", "img/14.jpg", "img/15.jpg", "img/16.jpg", "img/17.jpg", "img/18.jpg");
 document.write(GetGalleryHTML(images, 4, 80, 80));
function GetGalleryHTML(arr, count, width, height)
{
//реализация галлереи в виде таблицы
var html = '<table>';
for(var i = 0 ; i < arr.length ; )
{
html += "<tr>";
 for(var j= 0 ; j < count ; ++j, ++i)
{
html += "<td>";
if(i < arr.length)

html += '<img src="' + arr[i] + '" width="' + width + '" height="' + height + '" id="'+i+'" onclick = "imgchange();" />'; 
     
        else
        html += "";
       html += "<td>";
 }
        html += "</tr>";
        }
        html += '</table>';
        return html;
        }
function imgchange() { 
 document.getElementById("2").scr= img/15.jpg;  
      } 
    </script>


не хочет работать с функцией imgchange().

рони 14.06.2010 01:00

document.getElementById("2").src= "img/15.jpg"; кавычки нужны
да и наверно
onclick = "imgchange();"
onclick = "imgchange(this.src);"

и
function imgchange(src) {   

 document.getElementById("2").src=src;    

       }

jey7 14.06.2010 23:44

Спасибо все работает


Часовой пояс GMT +3, время: 19:51.