Переполнение: скрыто -> прокрутка PHP DIV? - PullRequest
0 голосов
/ 03 декабря 2011

Итак, у меня есть веб-сайт, который перемещается, прокручивая панель DIVs, которая обернута внутри основного DIV через. JQuery / javascript: http://plugins.jquery.com/project/ScrollTo

* 1005 Е.Г. *

<div id="content" style:"overflow:hidden; width 800px;">
   <div id="home" class="page"></div>
   <div id="about" class="page"></div>
   <div id="support" class="page"></div>
</div>

Он хорошо перемещается и прокручивается, но попытка предоставить динамические URL-адреса для страниц без нарушения функции прокрутки (например, mywebsite.com?p=home) приносит некоторые проблемы.

Итак, в зависимости от того, что возвращает запрос GET, я хочу, чтобы PHP-скрипт автоматически устанавливал позицию прокрутки при загрузке страницы; поскольку полосы прокрутки скрыты, и могут быть установлены только через. JavaScript.

Какой метод лучше для этого?

Ответы [ 3 ]

0 голосов
/ 03 декабря 2011

Возможно что-то вроде этого

<script>
    var goTo = '<?php echo (isset($_GET['p']) ? $_GET['p'] : "default_value"); ?>';
    (function($){
        $(document).ready(function(){
            functionThatScrolls(goTo);
        });
    }(jQuery));
<script>

Я бы сделал это следующим образом: просто напечатайте значение $ _GET ['p'] в сценарии, просто убедитесь, что вы печатаете значение по умолчанию, и, возможно, санизируйте значение p, чтобы кто-нибудь мог вставить в него что-нибудь.

надеюсь, это помогло.

0 голосов
/ 03 декабря 2011

Могу ли я предложить просто использовать старые якорные теги?

То, как вы описали свой сайт, похоже, не требует всей этой магии js для достижения эффекта, который выищите ...

<div>

  <a name="home">
    <div>
    </div>
  </a>

  <a name="pix">
    <div>
    </div>
  </a>

  <a name="about us">
    <div>
    </div>
  </a>

  <a name="contact">
    <div>
    </div>
  </a>

</div>

Затем ссылки на http://www.mywebsite.com/#home будут делать то, что вы ищете, плюс Google будет индексировать его как подраздел http://www.mywebsite.com/

Я думаю, что если вы поставите ! перед именами тегов привязки, Google на самом деле будет индексировать каждую из них как отдельную страницу.

РЕДАКТИРОВАТЬ: перейдите сюда и прокрутите вниз до«Пошаговое руководство».

0 голосов
/ 03 декабря 2011

Вот что я использую, чтобы получить переменные $ _GET:

function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {},
        tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
            = decodeURIComponent(tokens[2]);
     }

    return params;
}

var $_GET = getQueryParams(document.location.search);

$(document).ready(function(){
    $('html,body').animate({
        scrollTop: $('#'+$_GET.p).offset().top},
        'slow');
});
...