Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2012, 21:18
Новичок на форуме
Отправить личное сообщение для YamazakiHL Посмотреть профиль Найти все сообщения от YamazakiHL
 
Регистрация: 09.07.2012
Сообщений: 4

Плавная прокрутка страницы до якоря
Хочу на сайте реализовать плавную прокрутку страницы, но на просторах смог найти по name вверх, а мне нужно еще и вниз. Вот код:
if($("a[href^=#services_]")) {
  $("a[href^=#services_]").bind('click',function(event) {
    var $sender=$(this).attr("href");
    var $destination=$("a[name="+$sender.split("#")[1]+"]").offset().top;
    $('html,body').stop().animate({scrollTop:$destination},'slow');
    event.preventDefault();
  });
}
Собственно проблема (как мне кажется) в этих двух строках, ну или в одной из них:
var $destination=$("a[name="+$sender.split("#")[1]+"]").offset().top;
$('html,body').stop().animate({scrollTop:$destination},'slow');
Имя содержит помимо services_ дополнительный текст (везде разный):
<a name="services_абракадабра"></a>
...
<a name="services_симсимоткройся"></a>

Мучаюсь уже второй день, а разобраться не могу. С JS пока что на ВЫ Прошу помощи в решении данного вопроса ^^,

Последний раз редактировалось YamazakiHL, 09.07.2012 в 21:25.
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2012, 21:41
Аватар для Drimogemon
Профессор
Отправить личное сообщение для Drimogemon Посмотреть профиль Найти все сообщения от Drimogemon
 
Регистрация: 02.07.2012
Сообщений: 106

не проверял
$( 'a[href^=#services_]' ).click( function () {
	var id = $( this ).attr( 'href' ).match( /#.+$/ )[0];
	var offsetTop = $( id ).offset().top;
	$( 'body' ).stop().animate( {'scrollTop':offsetTop } );
} );

Последний раз редактировалось Drimogemon, 09.07.2012 в 21:49.
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2012, 21:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

YamazakiHL,
Выложите минимальный HTML необходимый для работы скрипта
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2012, 21:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Drimogemon,
Там по крайней мере - Хеш нун задать в селекторе и return false иначе бу срабатывать по всем ссылкам
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2012, 21:46
Аватар для Drimogemon
Профессор
Отправить личное сообщение для Drimogemon Посмотреть профиль Найти все сообщения от Drimogemon
 
Регистрация: 02.07.2012
Сообщений: 106

Сообщение от Deff
Хеш нун задать в селекторе
может он сам справится с этим то уж? нет)? очевидно что селектор на все ссылки идет) я порсто показал как это делается)) не буду же я ему скрипт псиать)

п.с. ой точно ты прав он как раз это делать и не умеет)) спс

Сообщение от Deff
и return false иначе бу срабатывать по всем ссылкам
не понял

Последний раз редактировалось Drimogemon, 09.07.2012 в 21:49.
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2012, 21:59
Новичок на форуме
Отправить личное сообщение для YamazakiHL Посмотреть профиль Найти все сообщения от YamazakiHL
 
Регистрация: 09.07.2012
Сообщений: 4

Deff

табличка-навигации:
<table border="0px" cellpadding="0px" cellspacing="0px" id="link">
  <tr>
    <th align="center" colspan="2">Принимаются заказы на следующие виды фотоуслуг:</th>
  </tr><tr>
    <td align="center">
      <a href="#services_Свадебная фотосъёмка">
        <div>Свадебная фотосъёмка</div>
      </a>
    </td><td align="center">
      <a href="#services_Фотосъемка праздников">
        <div>Фотосъемка праздников</div>
      </a>
    </td>
  </tr>
</table>

таблички разделов:
<table width="100%" border="0px" cellpadding="0px" cellspacing="0px" id="list">
  <tr>
    <td align="left" class="list_title">
      <div class="cost">0,00 руб.</div>
      <a name="services_Свадебная фотосъёмка"></a>
      Свадебная фотосъёмка
    </td>
  </tr><tr>
    <td align="left" valign="top">
      ...описание...
    </td>
  </tr>
</table>
<table width="100%" border="0px" cellpadding="0px" cellspacing="0px" id="list">
  <tr>
    <td align="left" class="list_title">
      <div class="cost">0,00 руб.</div>
      <a name="services_Фотосъемка праздников"></a>
      Фотосъемка праздников
    </td>
  </tr><tr>
    <td align="left" valign="top">
      ...описание...
    </td>
  </tr>
</table>

Весь JS:
$(document).ready(function() {
    if($("a[href=#diapazon")) {/* прокрутка вверх - работает */
      $("a[href=#diapazon]").bind('click',function(event) {
        $('html,body').stop().animate({scrollTop:$("body").offset().top},'slow');
        event.preventDefault();
        return false;
      });
	} else if($("a[href^=#services_]")) {/* прокрутка вниз - не работает*/
      $("a[href^=#services_]").bind('click',function(event) {
        var $sender=$(this).attr("href").match( /#.+$/ )[0];
        var $destination=$sender.offset().top;
        $('html,body').stop().animate({scrollTop:$destination},'slow');
        event.preventDefault();
        return false;
      });
	}
  });

не помогает выше описанный

Последний раз редактировалось YamazakiHL, 09.07.2012 в 22:12.
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2012, 22:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Вобщем
YamazakiHL, Drimogemonу плюс ставьте - поскольку он основную работу сделал - мну ток подправил
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
  $( 'a[href^=#services_]' ).click( function () {
  	var id = $( this ).attr( 'href' ).match( /#.+$/ )[0].substr(1);
	var offsetTop = $("a[name='"+ id + "']").offset().top;
	$('body,html').animate({scrollTop:offsetTop}, 500);
    return false;
  });
});
</script>

<table border="0px" cellpadding="0px" cellspacing="0px" id="link">
  <tr>
    <th align="center" colspan="2">Принимаются заказы на следующие виды фотоуслуг:</th>
  </tr><tr>
    <td align="center">
      <a href="#services_Свадебная фотосъёмка">
        <div>Свадебная фотосъёмка</div>
      </a>
    </td><td align="center">
      <a href="#services_Фотосъемка праздников">
        <div>Фотосъемка праздников</div>
      </a>
    </td>
  </tr>
</table>




<table width="100%" border="0px" cellpadding="0px" cellspacing="0px" id="list">
  <tr>
    <td align="left"   height="300px"   class="list_title">
      <div class="cost">0,00 руб.</div>
      <a name="services_Свадебная фотосъёмка"></a>
      Свадебная фотосъёмка
    </td>
  </tr><tr>
    <td align="left" valign="top">
      ...описание...
    </td>
  </tr>
</table>
<table width="100%"    height="300px"    border="0px" cellpadding="0px" cellspacing="0px" id="list">
  <tr>
    <td align="left" class="list_title">
      <div class="cost">0,00 руб.</div>
      <a name="services_Фотосъемка праздников"></a>
      Фотосъемка праздников
    </td>
  </tr><tr>
    <td align="left"  height="700px"   valign="top">
      ...описание...
    </td>
  </tr>
</table>
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2012, 22:58
Новичок на форуме
Отправить личное сообщение для YamazakiHL Посмотреть профиль Найти все сообщения от YamazakiHL
 
Регистрация: 09.07.2012
Сообщений: 4

Спасибо большое! Долго же я мучился... Обоим + !
Поясните пожалуйста за что отвечает ...substr(1); ? или поясните строку вцелом
Ответить с цитированием
  #9 (permalink)  
Старый 09.07.2012, 23:25
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от YamazakiHL
...substr(1); ? или поясните строку вцелом
Она берет строку из href, которая начинается с #, но в name этого значка нет сокращаем на один - substr(1); читает строку не с 0 а с 1
Ответить с цитированием
  #10 (permalink)  
Старый 09.07.2012, 23:27
Новичок на форуме
Отправить личное сообщение для YamazakiHL Посмотреть профиль Найти все сообщения от YamazakiHL
 
Регистрация: 09.07.2012
Сообщений: 4

Ааам, понятно. Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
плавная прокрутка страницы Ultimatum jQuery 4 12.12.2015 22:23
Прокрутка окна при загрузке страницы dexteron Общие вопросы Javascript 5 09.04.2015 19:08
chrome firebug lite и прокрутка страницы в самый низ cmygeHm Общие вопросы Javascript 3 28.02.2012 14:34
Прокрутка страницы Phoenix Общие вопросы Javascript 7 30.10.2010 14:30
Прокрутка страницы с помощью клавиш Mirgorod Events/DOM/Window 0 17.06.2010 22:39