Остановка якорей от прокрутки до вершины! - PullRequest
0 голосов
/ 31 мая 2011

Я пытаюсь создать сайт, где все «страницы» находятся в одном документе.Каждая «страница» является привязанным разделом, поэтому, когда я вызываю ее из главной навигации, расположенной в верхней части сайта, этот раздел открывается.Но у меня есть две проблемы: 1) когда я делаю ссылку из-за пределов сайта, я хочу иметь возможность ссылаться на любой отдельный закрепленный раздел без прокрутки страницы вверх (потому что тогда вы не можете видеть навигацию, которая находится вверху) и 2) Мне бы хотелось, чтобы при обновлении страница не начиналась с самого начала.Чтобы понять, что я имею в виду, вот сайт, который имеет точно такой же макет «скользящий контент в представлении», что и у меня, и в точности иллюстрирует, что я хотел бы иметь дополнительно:

http://www.incub.ro/#page-news

Обратите внимание, как не только имя якоря появляется в адресной строке, но и сама страница загружается полностью и не прокручивает привязанный предмет вверх?Да, это то, чего я пытаюсь достичь!

Мой код выглядит примерно так:

КОД HTML ------

<!-- Commence Navigation -->

<div class="wrapper">

<div id="headcontainer">
  <div id="banner"><a href="#home" class="panel"><img src="images/layout/0_homepage.png" id="top" height="100" width="420"border="0" /></a>

    <div id="navigation">
    <div class="center">
    <ul id="topnav">
        <li><a href="#link1" class="panel">Link 1</a></li> 
        <li><a href="#link2" class="panel">Link 2</a></li> 
        <li><a href="#link3" class="panel">Link 3</a></li> 
        <li><a href="#link4" class="panel">Link 4</a></li>
    </ul>
    </div>
    </div>
  </div>
</div>

<!-- End Navigation -->


<!-- Commence Content -->

<div id="wrapper">
<div id="mask">


    <div id="home" class="item">
    <a name="home"></a>
    <div id="container-slideshow"></div>
    </div>
    </div>

    <div id="link1" class="item">
    <a name="link1"></a>
    <div class="content">
    </div>
    </div>

    <div id="link2" class="item">
    <a name="link2"></a>
    <div class="content">
    </div>
    </div>

    <div id="link3" class="item">
    <a name="link3"></a>
    <div class="content">
    </div>
    </div>

    <div id="link4" class="item">
    <a name="about"></a>
    <div class="content">
    </div>
    </div>

   </div> 
   </div> 
   </div>
   <!-- End Content -->

   <div class="footer"> </div>

КОД CSS ------

body {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 0.8em;
    background-color: #131419;
    background-attachment: fixed;
    background-image: url("../images/layout/background_lrg2.jpg");
    background-position: center top;
    width:100%;
    overflow:hidden;
    padding: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-left: 0px;
}

.wrapper {
    min-height: 100%;
    height: 70%;
    margin-top: 0;
    margin-right: auto;
    margin-left: auto;
    overflow:hidden; 
  }

#wrapper {
    width:100%;
    height:100%;
    position:relative;
    top:0px;
    left:0;
    overflow:hidden;
}


#mask {
    width:900%;
    height:100%;
    overflow:hidden;
}

.item {
    width:11.1%;
    height:100%;
    float:left;
    margin-right: auto;
    margin-left: auto;
    position:relative;
    top:30px;
    overflow:hidden;
}

.content {
    font-family: Helvetica, Arial, sans-serif;
    color: #d1d1d1;
    font-size: 14px;
    line-height: 22px;
    width: 1000px;
    overflow:auto;
    padding-left: 30px;
    padding-right: 10px;
    padding-bottom: 10%;
    position:relative;
    margin-top: 0;
    margin-right: auto;
    margin-left: auto;
}

Надеюсь, это имеет смысл.Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 01 июня 2011

Хорошо, наконец-то мне удалось найти решение проблемы прокручивания вверх якорей.Просто изменив положение #headcontainer на «фиксированный» и переместив его внизу HTML-страницы, добился цели, добавив «top: 200px;»к моему классу контента, чтобы мы могли видеть навигацию.

Так что с помощью tradyblix это по существу решает мои проблемы, хотя есть странное «мерцание», которое происходит с контентом, когда я нажимаюпо ссылке на навигацию.Я действительно не знаю, как это объяснить.Этого раньше не было, так что это связано с новым кодом ...

0 голосов
/ 31 мая 2011

Готовы ли вы использовать jQuery?Если это так, может быть, этот фрагмент может помочь:

$(function() {
    // assigns click action for the a's
    $('#topnav a').click(function(e) {
        // prevent default behavior so clicking the <a> won't go up
        e.preventDefault();
        // get the anchor in the <a> and change the window hash
        // e.g. http://site.com/#link4
        window.location.hash = $(this).attr('href');
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...