Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2015, 20:40
Интересующийся
Отправить личное сообщение для Jason_smith Посмотреть профиль Найти все сообщения от Jason_smith
 
Регистрация: 22.01.2015
Сообщений: 13

Скрипт скрывающий невидимый див по клику и создающий к ним доступ через ссылку
Доброго вечера уважаемые форумчане. У меня назрел очень важный но пока невыполнимый для меня (новичка) вопрос. Я делаю страничку там будет 4 дива (каждый содержит анимацию) Но 3 из этих дивов скрытые. Дивы эти пользователь должен открыть когда нажмет на один из пунктов меню на сайте. Механика такова пользователь нажал на один из 4 дивов соотвественно один из 4 должен отрытся а остальные должны бить скрыты. Но все дивы на одной страницы, а нужно сделать так чтоб при нажатии на оприделенный див скрипт по мимо открытия этого дива должен добавить в браузерную строку, ссылку на него (как при переходе на другую страничку) и скопировав ссылку на эту страничку (на конкретный див) и можна было б пулучить к ней доступ. Надеюсь понятно обяснил , если что спрашивайте буду очень благодарен за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2015, 10:19
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сообщение от Jason_smith
Механика такова пользователь нажал
Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова…


Вообще нихрена не понятно. По первому - устанавливать всем дивам display:none, после чего нужному устанавливать display:block. По ссылке я так и ен понял то ли нао перейти по новому адресу то ли только показать его в строке адреса...если второе то использовать history (или плагин типо PushStateHistory), если первое то location.pathname.
Дальше я просто не понял смысла.
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2015, 15:12
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Наверное имелись ввиду табы, похожее под описание можно глянуть например здесь
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2015, 23:20
Интересующийся
Отправить личное сообщение для Jason_smith Посмотреть профиль Найти все сообщения от Jason_smith
 
Регистрация: 22.01.2015
Сообщений: 13

https://www.youtube.com/watch?v=sAjAUmtGylY
Вот делаю урок все по этому видео, но что-то не так так как код всё равно не работает. Нужно также как и на видео сделать чтоб когда пользователь клацал по ссылке то подменялся урл только без # надо сделать. То есть это должна быть якобы имитация перехода по ссылке, но перехода не былоб просто показывался контент , с одного из 4 дивов а остальные скрытые, чтоб пользователь который открыл один из 4 дивов мог на него ссылку например кому нибуть отправить на конкретный див. и все это должно происходить на одной странице без подгрузок аяксов и тд. Надеюсь не запутал) Может есть идеи как это реализовать иначе не так как на видео.

Вот код если несложно проверте на наличие ошибок:

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>


<body>
<div class= "container">
<h1> Welcome to my sample page</h1>
<ul class = "nav" >
<hr />
<li> <a href="main"> Maine</a></li>
<li> <a href="about">Aboute</a></li>
<li> <a href="downloads">Downloads</a></li>
<hr />
</ul>
<div class="content"></div>
</div>
<script>
var links,
updatestate,
updatebuttons,
contentEL,
navEL;

contentEL = document.querySelector('.content');
navEL = document.getElementById('nav');

Links = {
main: "This is page 1",
about: "This is page 2",
downloads: "this is page 2"
};


updatestate = function(state){
if (!state) return;
contentEL.innerHTML = links[state.page];
updatebuttons(state);
};

updatebuttons = function(state){
[].slice.call(navEL.querySelectoraALL('a'))
.forEach(function(e){
var classList = e.parentNode.classList;
state.page === e.getAttribute('href')
? classList.add('active')
: classList.remove('active');
});
};

window.addEventListener('postate', function(e){
updatestate(e.state);
});
if(navEL){
navEL.addEventListener('click', function(e){
e.preventDefault();
var state;
if (e.target.tagName !=='A') return;
state = {page: e.target.getAttribute('href')};
history.pushState(state, '', state.page);
updatestate(state);

});
}
</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать скрипт, создающий ссылку на страницу, находящуюся на вашем сервере. Ирина Владимировна Общие вопросы Javascript 1 28.03.2012 19:02