Вопрос по JS

(Ответов: 3, Просмотров: 308)
  1. Новичок Аватар для iSerge
    • Регистрация: 17.10.2012
    • Сообщений: 24
    • Репутация: 1
    Есть меню-слайдер на theroom (.) by
    Код его ниже.

    Вопрос: как сделать, чтобы по убыл раскрыт первый слайдер?

    Сам JS не знаю, прошу помощи!
    Код:
    var slideMenu=function(){
    	var slider,items,maxW,minW,normalW;
    	return{
    		build:function(sm,sw){
                slider = $('#slider');
                items = $('#slider li');
                first = $('#slider li.first');
                first.width(460);
                maxW = sw-1;
                normalW = $('#slider').width()/items.length - 1;
                minW =  Math.floor(($('#slider').width() - maxW) /  (items.length-1));
                numPlanes = new Array();
                desPlanes = new Array();
                
                items.hover(function()
                {
                    slideMenu.over($(this).index());					   
                }, function(){
                	slideMenu.out();						   
                })
                
                for(var i = 0; i < items.length; i++){
                    items.eq(i).width(normalW);
                    numPlanes[i] = items.eq(i).find('>span'); 
                    numPlanes[i].stop().animate({left:(normalW-48)/2}, 0);
                    desPlanes[i] = items.eq(i).find('>div'); 
                }
    		},
            over:function(itemNum){
               for(var i=0; i<items.length; i++){
                    if(i != itemNum){
                        items.eq(i).stop().animate({width:minW}, 500);
                        numPlanes[i].stop().animate({left:(minW-48)/2}, 500);
                    } else if(i == itemNum){
                        items.eq(i).stop().animate({width:maxW}, 500);
                        numPlanes[i].stop().animate({left:'-60px'}, 500);
                        desPlanes[i].stop().animate({left:(maxW-302)/2}, 500);
                    }
               }
            },
            out:function(){
               for(var i=0; i<items.length; i++){
                    items.eq(i).stop().animate({width:normalW}, 500);
                    numPlanes[i].stop().animate({left:(normalW-48)/2}, 500);
                    desPlanes[i].stop().animate({left:'-350px'}, 500);
               }
            }
    	};
    }();
    • 0
  2. Новичок Аватар для iSerge
    • Регистрация: 17.10.2012
    • Сообщений: 24
    • Репутация: 1
    Вопрос: Как сделать так, чтобы по умолчанию был раскрыт первый слайдер?
    • 0
  3. Гуру Аватар для west0293
    • Регистрация: 09.06.2011
    • Сообщений: 1,025
    • Репутация: 342
    • Webmoney BL: ?
    Сдается мне, что это не в js надо сделать, а в css указать что-то типа:
    Код:
    #slider > li.first
    {
    width:459px;
    }
    Тогда по умолчанию будет ширина первого блока 459px (т.е. развернут), а js уже будет менять это при наведении мыши.
    Последний раз редактировалось west0293; 03.11.2014 в 23:05.
    • 0
  4. Новичок Аватар для iSerge
    • Регистрация: 17.10.2012
    • Сообщений: 24
    • Репутация: 1
    west0293, я уже пробовал и через CSS ничего не получилось, и вот сейчас прописал
    Код:
    #slider > li.first
    {
    width:459px;
    }
    В JS слайдера видно, что есть функция которая его создает, если я правильно понял,
    Код:
    build:function(sm,sw){
                slider = $('#slider');
                items = $('#slider li');
                maxW = sw-1;
                normalW = $('#slider').width()/items.length - 1;
                minW =  Math.floor(($('#slider').width() - maxW) /  (items.length-1));
                numPlanes = new Array();
                desPlanes = new Array();
                
                items.hover(function()
                {
                    slideMenu.over($(this).index());					   
                }, function(){
                	slideMenu.out();						   
                })
                
                for(var i = 0; i < items.length; i++){
                    items.eq(i).width(normalW);
                    numPlanes[i] = items.eq(i).find('>span'); 
                    numPlanes[i].stop().animate({left:(normalW-48)/2}, 0);
                    desPlanes[i] = items.eq(i).find('>div'); 
                }
    		},
    ...и она все размеры через стили переопределяет.

    ---------- Сообщение добавлено 04.11.2014 00:14 ---------- Предыдущее 03.11.2014 23:12 ----------

    задачу решил используя функции скрипта.

    Если кому интересно - спрашивайте и выложу решение.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Вопрос по DNS
Хостинг и Серверы 8 08.06.2013 14:06
Вопрос [vps]
Хостинг и Серверы 3 04.05.2013 03:57
Вопрос не вопрос, предубеждение ? Не думаю. Мне интересно ваше мнение.
Оффтоп и свободные темы 8 19.06.2012 05:20
Вопрос про тИЦ
Вопросы от новичков 6 08.01.2012 18:40

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры