2016-06-03 3 views
0

У меня есть две формы на моем сайте. один .login-form и один .registration-form. по умолчанию форма входа в систему имеет свойство display: block, а регистрационная форма имеет display: none. У меня есть кнопка для переключения между двумя формами. что уже работает красиво.Добавить/удалить класс CSS на основе #hash

Теперь я хочу переключить эти свойства на основе хеша URL. поэтому, если вы посетили /user.html#registration, я хочу сначала просмотреть регистрационную форму, а не форму входа в систему.

как я могу это достичь? Я очень ценю вашу помощь!

jaro.

+1

[__'onhashchange'__] (https://developer.mozilla.org/en/docs/Web/API/WindowEventHandlers/onhashchange) – Rayon

ответ

0

короткий скрипт для чтения хэш должен сделать:

<script> 
// Add this block to where your "after page load" code starts. 
// If you use a framework, you should adjust the solution to your framework. 
if (location.hash && location.hash === "#registration") { 
    // or whichever way your app switches between the two 
    document.body.classList.add("show-registration"); 
} // else it'll show login, as intended. 
</script> 

Если ваш CSS не настроен для этого уже:

<style> 
body.show-registration .login-form { 
    display: none; 
} 
body.show-registration .registration-form { 
    display: block; 
} 
</style> 
+0

Большое спасибо человеку! вот и все! – buntestrahlen

0

Я думаю, что это в значительной степени то, что вы ищете для:

window.addEventListener("hashchange",() => { 
    if (window.location.hash === "registration") { 
    document.querySelector(".registration-form").style.display = "block"; 
    } 
}); 
+0

, но это не добавление класса, оно напрямую изменяет атрибут стиля. если вы определяете свои классы, вы можете сделать document.querySelector («регистрационная форма»). classList.add («ваш класс») или .classList.remove («ваш класс»); – erdysson

+0

большое вам спасибо! Вы мне очень помогли! – buntestrahlen

+0

добро пожаловать, если он решает вашу проблему, можете ли вы одобрить ответ, пожалуйста – erdysson

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