2012-05-30 7 views
1

Я это пример моего списка форм на моей странице: http://jsfiddle.net/GSC3x/

Он отлично работает, но когда у меня есть много элементов списка на моей странице , это совсем не удобно. Я хочу изменить способ отображения форм после нажатия на один из элементов списка.

Я хочу, чтобы это произошло, когда я нажимаю на элемент, форма отображается в центре страницы, а остальные элементы списка невидимы, когда форма включена - когда я нажимаю на мой ранее щелкнутый элемент снова - он должен вернуться в обычное представление списка - как это сделать?

@@ UPDATE - добавлено гипер профессиональное изображение, чтобы показать, как оно должно работать! :]

enter image description here

ответ

1

Try ниже моего кода ...

CSS добавьте ниже

ul{ 
    position:relative; 
} 

.centerDiv{ 
    position:absolute; 
    z-index:1000; 
    top:0px; 
    left:30px; 
}​ 

и Javascript

$(document).ready(function(){ 

    $(".slidingDiv").hide(); 
    $(".show_hide").show(); 

    $('.show_hide').click(function(e){ 
     if($(e.target).next(".slidingDiv").css('display') != 'block'){ 
      $(".slidingDiv").hide(); 
      $(".show_hide").hide(); 
      $(e.target).show(); 
      $(e.target).next(".slidingDiv").addClass("centerDiv"); 
      $(e.target).next(".slidingDiv").slideToggle(); 
     }else{ 
       $(".slidingDiv").hide(); 
       $(".show_hide").show(); 
     } 
    }); 
}); 
+0

Спасибо за внимание, это хорошо - но моя точка зрения в том, что вся форме с элементом списка перемещается в центр страницы - теперь это просто появляется под щелкнутым пунктом - как и предыдущая. – pawel

+0

@pawel см. Обновленный ответ. –

+0

см. Обновленный вопрос:) – pawel

1
$(document).ready(function(){ 

     $(".slidingDiv").hide(); 
     $(".show_hide").show(); 

     $('.show_hide').click(function(e){ 
      $('.show_hide').not($(this)).next(".slidingDiv").hide(); 
      $(e.target).next(".slidingDiv").slideToggle(); 
     }); 
}); 
+0

Прохладный, но не могли бы вы анимировать форму, когда она активна в центре страницы? – pawel

1

Вместо $(e.target).next(".slidingDiv").slideToggle(); вы можете добавить код для анимации формы в центр.

var t=($(window).height() - $(this).next(".slidingDiv").height()) /2+$(window).scrollTop(); 
var l= ($(window).width() - $(this).next(".slidingDiv").width())/2+$(window).scrollLeft();   
$(e.target).next(".slidingDiv").css('position','absolute'); 
$(e.target).next(".slidingDiv").animate({ 
left: l, 
top: t, 
}, 500).show(); 
}); 
Смежные вопросы