Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Смена порядка элементов (https://javascript.ru/forum/dom-window/21224-smena-poryadka-ehlementov.html)

AnToxa 01.09.2011 19:10

Смена порядка элементов
 
Приветствую! Ребят, подскажите пожалуйста как изменить порядок! Есть галерея. При загрузке она последние фотографии в конец кидает. А мне надо чтобы наоборот грузились в начало
Вот кусок кода, я так понимаю, отвечающий за это:
parseContentXML:function(){var aW,aX,aV,aZ,aY;for(aW=1;aW<=1000;aW++){if(aW<10){aX="images/image0"+aW+".jpg";aV="images/thumbs/image0"+aW+".jpg"}else{aX="images/image"+aW+".jpg";aV="images/thumbs/image"+aW+".jpg"}aZ="";aY="";if(aW==1){aZ=""}if(aW==3){aZ=""}if(aW==10){aZ=""}if(aW==15){aZ=""}if(aW==17){aZ=""}if(aW==1){aY=""}if(aW==3){aY=""}if(aW==10){aY=""}if(aW==15){aY=""}if(aW==17){aY=""}k.push(aX);ak.push(aV);Y.push(aZ);w.push(aY)}ar=k.length;aH.initGallery()},initGallery:function(){var aV=new Array();aV.push('<div class="DOP_ThumbnailGallery_Container">');aV.push('   <div class="DOP_ThumbnailGallery_Background"></div>');aV.push('   <div class="DOP_ThumbnailGallery_ThumbnailsContainer">')

Мне нужно, чтобы image01 двигалась в конец а не стояла в начале и image02 тсановилась первой и так далее

Sweet 01.09.2011 19:38

Ну и нафига выкладывать обфусцированный код? Это ж издевательство! А по теме: вот (в частности .insertBefore).

AnToxa 01.09.2011 19:53

Sweet, мне нужно именно в этом коде изменить! :(

crayday 01.09.2011 21:59

В первой строчке почти в самом начале написано for(aW=1;aW<=1000;aW++).
Изменить на for(aW=1000;aW>0;aW--)
Скорее всего поможет, хотя внимательно не изучал.

Вот в помощь - http://jsbeautifier.org/ - чтобы легче было разобраться с этой фиговиной =)

melky 01.09.2011 22:02

садист бл-ь

и тут неполный код что ли?
parseContentXML: function() {
    var aW, aX, aV, aZ, aY;
    for (aW = 1; aW <= 1000; aW++) {
        if (aW < 10) {
            aX = "images/image0" + aW + ".jpg";
            aV = "images/thumbs/image0" + aW + ".jpg"
        } else {
            aX = "images/image" + aW + ".jpg";
            aV = "images/thumbs/image" + aW + ".jpg"
        }
        aZ = "";
        aY = "";
        if (aW == 1) {
            aZ = ""
        }
        if (aW == 3) {
            aZ = ""
        }
        if (aW == 10) {
            aZ = ""
        }
        if (aW == 15) {
            aZ = ""
        }
        if (aW == 17) {
            aZ = ""
        }
        if (aW == 1) {
            aY = ""
        }
        if (aW == 3) {
            aY = ""
        }
        if (aW == 10) {
            aY = ""
        }
        if (aW == 15) {
            aY = ""
        }
        if (aW == 17) {
            aY = ""
        }
        k.push(aX);
        ak.push(aV);
        Y.push(aZ);
        w.push(aY)
    }
    ar = k.length;
    aH.initGallery()
},
initGallery: function() {
    var aV = new Array();
    aV.push('<div class="DOP_ThumbnailGallery_Container">');
    aV.push('   <div class="DOP_ThumbnailGallery_Background"></div>');
    aV.push('   <div class="DOP_ThumbnailGallery_ThumbnailsContainer">')

Sweet 01.09.2011 22:28

Цитата:

Сообщение от AnToxa
мне нужно именно в этом коде изменить!

Измени. Никто не против.

Kolyaj 01.09.2011 23:29

Цитата:

Сообщение от Sweet
Ну и нафига выкладывать обфусцированный код?

Может он так пишет.

Sweet 01.09.2011 23:38

Цитата:

Сообщение от Kolyaj
Может он так пишет.

В переменные типа aW или aX я еще верю, но писать в одну строчку без пробелов...

Kolyaj 01.09.2011 23:43

Смайлик забыл.

AnToxa 02.09.2011 07:32

Код в одну строчку! могу даже файл прислать. Был бы в нормальном виде так и кинул =)
Да, тут не полный код.. целиком он очень большой
crayday, не помогло =(
Если нужен полный код я выложу!

AnToxa 02.09.2011 10:24

crayday, не выходит...

crayday 02.09.2011 10:42

В таком случае требуется привести больший участок кода или, что лучше, страницу, на которой это работает

AnToxa 02.09.2011 16:37

Вложений: 1
Вот вложил галерею (тут она целиком) а работает эта галерея тут
Буду благодарен за помощь! ;)

crayday 02.09.2011 18:24

Я сегодня и в выходные уже не успею посмотреть, но если вопрос доживёт до понедельника, то обязательно изучу.

AnToxa 02.09.2011 19:17

crayday, большое спасибо! Я в долгу не останусь!

melky 02.09.2011 19:27

сделайте так

выделите весь код, который находится в файле галлереи (скрипт)

потом вставьте на jsbeautifier, нажмите на кнопку выше и вставьте полученный код на место старого (это то же самое, просто добавлены пробелы и переносы строк)

тогда можно будет поработать

а так.. вроде

надо изменить это

a(".DOP_ThumbnailGallery_Thumbnails",az).*!*append*/!*(aV.join(""))

заменить на
a(".DOP_ThumbnailGallery_Thumbnails",az).*!*prepend*/!*(aV.join(""))

это будет добавлять новые картинки (тумбы) не в конец DIV (списка), а в начало.

PS количество сисек в галерее зашкаливает :D кто эта девушка ?

AnToxa 03.09.2011 09:02

melky, да все получилось! Но только галерея все равно открывает с image01 только теперь не слева на право ведет порядок а с права налево. Можно при этом сделать так, чтобы открывалась не image01 а последняя загруженная?(в этом весь смысл, чтобы сначала открывались последние фото) и с нее шло в конец (например от image150 ... до image01) ну или можно поменять числовой порядок на убывание. К примеру с image999 до image01. Главное, чтобы новые фотографии становились и открывались первыми.

P.S. Девушка Exceela (Экси) хип-хоп исполнительница (на сайте в принципе есть инфа) =)
сисек вроде всего две, но зато какие :D

melky 03.09.2011 11:28

Цитата:

Сообщение от AnToxa (Сообщение 124500)
melky, да все получилось! Но только галерея все равно открывает с image01 только теперь не слева на право ведет порядок а с права налево. Можно при этом сделать так, чтобы открывалась не image01 а последняя загруженная?(в этом весь смысл, чтобы сначала открывались последние фото) и с нее шло в конец (например от image150 ... до image01) ну или можно поменять числовой порядок на убывание. К примеру с image999 до image01. Главное, чтобы новые фотографии становились и открывались первыми.

а вот для этого сделайте код красивым
http://jsbeautifier.org/

в той одной строке нереально вообще что-либо сделать

AnToxa 03.09.2011 12:02

Цитата:

Сообщение от melky (Сообщение 124526)
а вот для этого сделайте код красивым
http://jsbeautifier.org/

Я уже заменил, спасибо =) но сделать задуманное не выходит =(

melky 03.09.2011 12:06

Цитата:

Сообщение от AnToxa (Сообщение 124533)
Я уже заменил, спасибо =) но сделать задуманное не выходит =(

где ?

http://exceela.com/images/gallery/Li...Gallery.min.js

сайту ничего не сделается, просто файл будет весить больше. потом сожмёте.

AnToxa 03.09.2011 13:37

melky, перезалил

melky 03.09.2011 17:56

aH.loadImage(43)
поставит последнюю фотку

про добавление в начало я сказал ранее

*скрипт очень неясный, в инете его не нашел, комментов нету, некоторые куски ужаты гуглом - jQuery = a, например. в коде чёрт ногу сломит

AnToxa 03.09.2011 19:31

melky, спасибо еще раз! А можно чтобы отсчет велся тоже с 43 и в начало? ну можно ручками это указать (без добавления фоток в начало)? Ну т.е. загрезил я 70 фотографий указал 69 фотку и он начал с нее к 01 работать. ???

melky 03.09.2011 21:18

был бы я разработчиком скрипта, сказал бы, как :) а так даже неясно, что за переменные aW,b и зачем они - поотрезали все

AnToxa 03.09.2011 22:49

melky, все равно большое спасибо!

crayday 08.09.2011 15:57

Что произошло, когда было проделано вот это?
Цитата:

Сообщение от crayday
В первой строчке почти в самом начале написано for(aW=1;aW<=1000;aW++).
Изменить на for(aW=1000;aW>0;aW--)

Что произойдёт, если написать for(aW=10;aW<=1000;aW++) ? Будет ли загружена вначале 10-ая картинка?

AnToxa 08.09.2011 16:31

Цитата:

Сообщение от crayday (Сообщение 125576)
Что произошло, когда было проделано вот это?

просто ничего не загрузилось
Цитата:

Что произойдёт, если написать for(aW=10;aW<=1000;aW++) ? Будет ли загружена вначале 10-ая картинка?
да галерея пропускает первые 9 и начинает грузить с 10 и дальше...

crayday 08.09.2011 17:05

В таком случае надо узнать, сколько всего изображений в галереи и писать уже for(aW=n;aW>0;aW--), где n - количество изображений. Javascript не сможет определить, сколько всего изображений в папке, но это может сделать серверный код.

Судя по названию функции, автор предполагал загружать информацию из xml, но не успел реализовать эту возможность.


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