Условная функция для запуска: настройка в SerialScroll Ариэля Флезлера - PullRequest
0 голосов
/ 03 декабря 2009

Сайт находится @ beattrainsoundsystem.com/home

Я использую serialScroll для анимации ряда элементов div, содержащих танцующие символы, и использую LocalScroll для анимации элементов div содержимого. Моя проблема заключается в том, что при попытке загрузить URL-адрес с помощью хэша (например, beattrainsoundsystem.com/home#store) символьные div не анимируются в правильную позицию. Я знаю, что для этого мне нужно создать условную функцию для параметра «start:», чтобы изменить значение «start:» в зависимости от хэша в URL. Будучи новичком в jQuery, я не совсем уверен, как это кодировать.

Я уже использую плагин парсера URI для возврата хеша в URL, поэтому для "http://www.beattrainsoundsystem.com/home#store"

var urlHash = $.url.attr('anchor');

вернет "магазин"

Так что мне нужна функция, которая говорит:

if (urlHash == home) {
     var start = 0
} else if (urlHash == mixes) {
     var start = 1,
} else if (urlHash == contact) {
     var start = 2,
}

Это, очевидно, не правильно закодировано, но это концептуализация сценария, который мне нужен для этой работы.

Спасибо за вашу помощь!

Ответы [ 3 ]

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

Мне не кажется, что обрабатываются события клика для ссылок вверху, которые я пытался найти, чтобы я мог привести конкретный пример.

Похоже, что единственное время, когда анимация не работает, это когда я сразу перехожу на какую-то страницу с хешем в URL. Итак, я мог бы сделать что-то вроде:

  1. При загрузке страницы возьмите #name из URL
  2. Найдите элемент, чье href = имя, которое я схватил (у вас они названы одинаково, лучше было бы дать этим <a href="#name"> идентификатор, такой как <a id="name" href="#name">
  3. Создайте событие click () для этого элемента, чтобы имитировать обычный метод анимации

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

Вы должны быть в состоянии сделать что-то вроде этого:

$(document).ready(function(){
      // This whole part is pseudocode since I didn't spend
      // the time to find exactly how you're doing things

      // get the hash portion from the URL
      // (just copying you here, haven't done this myself)
      var sourceLinkHref = $.url.attr('anchor');

      // Find the <a> tag whose href attribute matches the
      // name you just found, and .click() it
      $("a[href=#" + sourceLinkHref + "]")
          .click();
   });
0 голосов
/ 05 января 2010
jQuery(function( $ ){
var urlHash = $.url.attr('anchor');
if (urlHash=="mixes") {
    $("#sectionsContent").scrollTo( $("#mixes"), 0 );
    $("#sectionsMid").scrollTo( $("#mixmid"), 0 );
    $("#sectionsTop").scrollTo( $("#mixTop"), 0 );
    $("#sectionsBottom").scrollTo( $("#mixBottom"), 0 );
}

if (urlHash=="contact") {
    $("#sectionsContent").scrollTo( $("#contact"), 0 );
    $("#sectionsMid").scrollTo( $("#storemid"), 0 );
    $("#sectionsTop").scrollTo( $("#storeTop"), 0 );
    $("#sectionsBottom").scrollTo( $("#storeBottom"), 0 );
}

if (urlHash=="store") {
    $("#sectionsContent").scrollTo( $("#store"), 0 );
    $("#sectionsMid").scrollTo( $("#blogmid"), 0 );
    $("#sectionsTop").scrollTo( $("#blogTop"), 0 );
    $("#sectionsBottom").scrollTo( $("#blogBottom"), 0 );
}

});

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

Вы, вероятно, должны интегрировать это с localScroll. Если вы вызовете $ .localScroll.hash (), он будет прокручивать до элемента, на который указывает хеш, и уведомит об изменении serialScroll.

...