2015-03-06 3 views
1

Здравствуйте, у меня есть форма регистрации, которая видна, и я пытаюсь скрыть ее, когда страница загружается. Так что я сделал, чтобы поместить всю форму в класс div с именем «signup», а затем скрыть его кодом скрипта.Скрыть класс div на странице load

UPDATE: HTML

<script> 
    document.write('<div class="js">'); 
    </script> 

<span class="button">Sign In</span> 
<div id="signup"> 
<div class="modal-bg"> 
<div id="modal"> 
    <span>Sign In<a href="#close" id="close">&#215;</a></span> 
    <form> 
     <input id="username" name="username" type="textbox" placeholder="Username" required> 
     <input id="password" name="password" type="password" placeholder="Password" required> 
     <a id="forgot-link" href="#">Forgot password?</a> 
     <button name="submit" id="submit" type="submit">Sign in</button> 
    </form> 
</div> 
</div> 
</div> 
<script> 
    document.write('</div>'); 
    </script> 

Мой JS код (без функции скрытия):

$('.button').click(function(){ 
      $('#modal').css('display','block'); 
      $('.modal-bg').fadeIn(); 
    }); 

     $('#close,.modal-bg').click(function(){ 
       $('.modal-bg').fadeOut();  
       $('#modal').fadeOut(); 
      return false; 
     }); 

Даже если шкура/появляются, кажется, работает форма идет скрытый, если я нажимаю на него. Это проблема, поскольку никто не может зарегистрироваться, если они не могут набирать/нажимать на форму. (ВЫПУСК FIXED)

вот codepen (концертная версия): http://codepen.io/mariomez/pen/WbgrNK

+2

Если вы хотите сделать это при загрузке, почему бы не сделать это с помощью CSS? .signup {display: none; } – lshettyl

+0

@LShetty, одна из причин, почему это не так: если вы отключили js, форма никогда не будет отображаться. – Pete

+0

Js включен, как если бы я удалял какой-либо скрытый код, тогда форма появляется при загрузке страницы, и она закрывается, если я нажимаю на кнопке закрытия – Ricky

ответ

1

Вам вообще не нужен дилер регистрации - я думаю, что это усложняет ситуацию.Просто начните модальный фон спрятан так, прежде чем ваш код кнопки нажмите добавить:

$('.modal-bg').css('display','none');  

Example

Update

, чтобы остановить вашу форму, показывая вверх во время вашей загрузки страницы я бы добавил JS ДИВ :

после вашего тела открытия тега:

<script> 
    document.write('<div class="js">'); 
</script> 

до вашего тела закрывающего тега:

<script> 
    document.write('</div>'); 
</script> 

Это позволяет применять JS только стиль, в этом случае для модального-BG:

.js .modal-bg {display:none;} 

, а затем вы можете удалить вышеуказанные JS в скрыть модальность, как это будет теперь в вашем CSS

updated codepen

+0

Кажется, что мне нужно только проверить небольшую проблему в chrome, как при перезагрузке страницы, видимый за долю секунды, прежде чем скрыться. – Ricky

+1

См. Править ответ – Pete

+1

вот и все! :) спасибо .. это также исправил проблему с хром тоже. На всякий случай я также проверю другие браузеры. – Ricky

1

Вы ищете DIV с идентификатором «Зарегистрироваться», но это имя класса.

$(function() { 
    $(".signup").hide(); 
}); 

Спрячет регистрацию div при загрузке страницы.

Затем вы можете использовать $(".signup").toggle(); на событии нажатия кнопки.

Если вы их объединяете, например,

$(function() { 
    $(".signup").hide(); 

    $(".button").click(function() { 
    $(".signup").toggle(); 
    }); 
}); 

Затем кнопка отображает блок регистрации правильно и скрыта при загрузке страницы.

+0

Это был первый идентификатор, но он не работал, поэтому он превратился в класс. – Ricky

+0

Я уже пробовал это. Он действительно скрывает класс div. Поэтому, если я нажму на кнопку, она вообще не отобразит форму. – Ricky

0

Вот JQuery изменить CSS на странице загрузки:

$('.signup').css({ 
    'display': 'none' 
}); 
1

Вы скрываете «регистрацию» Див, но попытаться восстановить «модальный» ДИВ

Это работает:

$('.button').click(function(){ 
     $('#signup').css('display','block'); 
     $('.modal-bg').fadeIn(); 
}); 

    $('#close').click(function(){ 
      $('.modal-bg').fadeOut();  
      $('#signup').toggle(); 
     return false; 
    }); 
+0

Это не работает вяло:/Я тоже это пробовал. – Ricky

+0

@ Ricky: Heres скрипка с кодом, работающим [link] (http://jsfiddle.net/ccuxp3pn/) –

0

Первый способ (CSS) - CodePen

#signup { 

    display: none; 
} 

Второй метод (JQuery) - CodePen

$('#signup').hide(); 
0

Похоже, вы уже поняли это в ваших codepen вставить? Этот код отличается от вашего поста ...

Во всяком случае, у вас есть 3 слоя дивы в вашем диалоге Вход:
#signup> модальный-BG> модальный

Так что, если вы хотите скрыть #signup после Загрузите страницу:

$(function() { 
    $("#signup").hide(); 
}); 

тогда вам также необходимо показать/скрыть #signup в ваших событиях кнопок.

.modal-bg и #modal являются дочерними элементами #signup, поэтому, если вы остаетесь #signup в скрытом, .modal-bg и #modal всегда будут скрыты независимо от того, что вы делаете на них.

Кстати, я предлагаю вам использовать FireBug или общие инструменты для разработчиков (нажмите F12 в chrome/IE/FIrefox), чтобы проверить элементы HTML и проверить, что пошло не так, по крайней мере, так я нашел проблему в вашем коде.

+0

Да, я нашел свой ответ, но спасибо за ваш комментарий. Я буду иметь все это как будущую ссылку для подобных проектов :) – Ricky

Смежные вопросы