Постовой: полипропиленовые трубы
Немного поменял дизайн сайта. В частности – слишком много разных ссылок, счетчиков и прочего не нужного в сайдбаре. Одним из способов, которым я скрыл лишнее – это открывающие блоки. Чтобы понять о чем я, посмотрите справа на этом сайте – нажмите на ссылку «…еще» в подписке или «больше!» в счетчиках.
То есть работает так. Предположим, мне нужно скрыть 10 счетчиков, которые на странице смотрятся довольно уродски. Засовываю их в такой вот блок, делаю ссылку. Юзер жмет на ссылку и ему открывается блок, а сама ссылка исчезает. Таким образом можно скрыть что угодно – «лишние» способы подписки (самый популярный RSS, а на остальное подписываются редко), какую-нибудь навязчивую инфу об авторе сайта, рекламные баннеры, категории, что угодно. Как это сделать?
Все замешано на JavaScript. Для любопытных подчеркиваю – все просто, это не Ajax, а именно JavaScript. Связано это с тем, что лично меня раздражает, когда жмешь на ссылку, а там еще что-то пару секунд грузится. Мгнованная загрузка – это сила. А чтобы она 100% была мгновенной, это должна быть предзагрузка (то есть все грузится «в фоне» во время загрузки основной страницы). В данном случае это не замедляет загрузку, т.к. сами блоки не объемные.
Для начала нам понадобится функция:
<script language=’javascript’>
function showblock(title){
document.getElementById(title + «-link»).style.display = «none»;
document.getElementById(title).style.display = «block»;
}
</script>
Эта функция позволяет сократить HTML-код (иначе бы пришлось все это писать в ставках вроде onclick). Добавьте ее, например, в файл header.php (если работаете с WordPress) или в другой файл шаблона. Можно непосредственно перед использованием.
Дальше. Заключаем то, что нужно скрыть, в блок div с такими параметрами: <div id=»more1″ style=»display: none;»>
Тут нужно обратить внимание на id (его будем передавать той функции) и на стиль, скрывающий div по умолчанию.
Теперь ссылка, чтобы этот див показывался. Понятно, что ссылка может быть где угодно, хотя логичнее всего на месте этого дива (над или под ним). Ссылка такого вида: <a href=»javascript: void(0);» id=’more1-link’ onclick=»showblock(‘more1′);»>…еще</a>
Обращаем внимание вот на что: такой href нужен, чтобы при клике не срабатывала прокрутка экрана (если поставить символ #, как обычно, то прокрутка сработает – это не удобно). id задан не случайно: он состоит из id дива выше (more1) и приписки -link. Это нужно, чтобы наша функция могла отличать – ссылка это или сам div. По событию onclick вызывается наша функция, в которую передается имя дива ‘more1′ (функция делает видимым div с id ранвым переданному и скрывает ссылку с id равным переданному плюс ‘-link’).
Чтобы было понятнее, можете посмотреть исходник моего сайта. Или вот Вам маленький пример:
<a href=»javascript: void(0);» id=’aaa-link’ onclick=»showblock(‘more1′);»>показать</a>
<div id=»aaa» style=»display: none;»>
Код, который нужно скрыть.
</div>
Оставьте свой комментарий
|
15.07.2009 в 6:09 пп
16.07.2009 в 11:56 дп
16.07.2009 в 2:18 пп
document.getElementById(title + “-link”).style.display = “none”;
document.getElementById(title).style.display = “block”;
}
16.07.2009 в 2:21 пп
16.07.2009 в 2:56 пп
17.07.2009 в 10:58 дп
17.07.2009 в 11:30 дп
17.07.2009 в 12:45 пп
17.07.2009 в 12:53 пп
17.07.2009 в 3:35 пп
23.07.2009 в 11:34 пп
07.09.2009 в 4:36 пп
Вобщем, смысл такой: на Adsense у меня никто не кликает, поэтому родился зловещий план – чтобы получить ссылку на скачивание (или просто открыть статью) подставляется код адсенса, после нажатия на него появляется ссылка. Как это на яваскрипте реализовать?
Нет, ну гениальный план, посуте
18.03.2010 в 9:52 пп