Как убрать слеш в ссылке меню

 
Посетитель
small user social cms
Медаль
Сообщений: 263
Делаю лэндинг, там в меню нужно указывать #якоря (#company #body #foot ...) При загрузке страницы меню имеет адреса со слешем <a href="/#company" >О компании</a> при этом якоря работают страницу перелистывает на нужное место, но не подключается скрипт плавной прокрутки.
в пхп не шарю, попробовал удалил 174 строку
Код PHP:
  1. if (!$is_root_added && mb_strpos($item['url'], 'http://')===false) { $item['url'] = href_to($item['url']); }
в файле /system/controllers/menu/model.php повезло слеш пропал smile плавная прокрутка заработала.
Подскажите может как-то правильнее есть решение.
Редактировалось: 1 раз (Последний: 26 декабря 2014 в 09:20)
Получай 2000р. на карту - за каждый хостинг оформленный для клиента. Установка CMS с улучшенным шаблоном бесплатно
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
WebStudioPro, а если явно указать ссылки:

http://instantcms.ru#company

на выходе вроде будет так

<a href="http://instantcms.ru#company" >О компании</a>

не?)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 263
reload, нет при указании полной ссылки страница заново загружается, да и скрипт не цепляется, нужно чтоб начинался с #

http://фаворит.онлайн
Редактировалось: 1 раз (Последний: 26 декабря 2014 в 16:37)
Получай 2000р. на карту - за каждый хостинг оформленный для клиента. Установка CMS с улучшенным шаблоном бесплатно
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
так без указания полной ссылки как раз и начинается в коде с #
а с указанием разумеется с http

ps: у вас что-то с кодом! Чувствую что вам нужно код прокрутки поправить либо сменить а не урлы править)

Попробуйте другой код прокрутки применить - их много на сколько я понимаю)

Или покажите тот что применяете, может все вместе найдем как его подпилить под двиг!
Посетитель
small user social cms
Медаль
Сообщений: 263
http://фаворит.онлайн
http://фаворит.онлайн/templates/default/js/yakor.js

Код PHP:
  1. $(document).ready(function() {
  2. // вызываем функцию, устанавливающую обработчик события клика по ссылкам, ссылающимся на анкор
  3. setup_slight_scroll_to_anchors();
  4. });
  5.  
  6. // простая функция, реализующая плавное скроллирование
  7. function setup_slight_scroll_to_anchors() {
  8. $('a[href^="#"]').click(function(){
  9. var link = $(this);
  10. // этой строчкой игнорируем ссылки, состоящие из единственного символа #
  11. if (link.attr('href') == '#') return;
  12. var target = link.attr('href');
  13. var target_top = $(target).offset().top - 70;
  14. $('html, body').animate({scrollTop: target_top}, 1500);
  15. return false;
  16. });
  17. }
Вместо # ставил /#
Скрипты пробовал разные, ни один не работает
Получай 2000р. на карту - за каждый хостинг оформленный для клиента. Установка CMS с улучшенным шаблоном бесплатно
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
WebStudioPro:
Вместо # ставил /#
я не силен в js, но попробуйте заэкранировать слеш. То есть получиться
Код PHP:
  1. ('a[href^="\/#"]')
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
Rossoman:
я не силен в js
я вообще далекий от всего этого)

Но, WebStudioPro, как я понимаю, скрипт отлавливает клик по ссылке #

По идее вам нужно сменить регулярку или отлавливать клик до другим признакам...

Rossoman:
но попробуйте заэкранировать слеш.

а для начала его добавить его!) слеша ведь нет)

WebStudioPro, попробуйте внести изменение которое советует Rossoman, по идее должно получиться...
Посетитель
small user social cms
Медаль
Сообщений: 263
Код PHP:
  1. ('a[href^="\/#"]')
Непомогло.

Кстати без этой 174 строки которую удалил, ещё и плюс в адресной строке не показываются якоря http://фаворит.онлайн/#company , http://фаворит.онлайн/#uslugi ...
Получай 2000р. на карту - за каждый хостинг оформленный для клиента. Установка CMS с улучшенным шаблоном бесплатно
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1163
WebStudioPro
1. Там не регулярка а обычный jQuery селектор)) (и "/#" - должно было отработать нормально)
2. Попробуйте: $('a[href*="#"]').click(function(){ ... - этот селектор будет искать подстроку "#" в href ссылки.
3. Перешел по вашей ссылки, пощелкал все пункты меню, и у меня все работает! скроллится плавно к якорю. Или я что-то не так смотрю?!
Посетитель
small user social cms
Медаль
Сообщений: 263
Val, в первом сообщении написал что удалил какую-то строку, не знаю за что отвечает и заработало. Просто хотел узнать, есть ли нормальный способ чтоб не рвать куски, да чтоб работало меню потом и не в лэндинге.
Получай 2000р. на карту - за каждый хостинг оформленный для клиента. Установка CMS с улучшенным шаблоном бесплатно
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1163
WebStudioPro, не зная что за строку вы удалили трудно гарантировать нормальную работу)))
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
Val:
1. Там не регулярка а обычный jQuery селектор))

Хотел исправить, но подумал что суть и так будет понятна)

...селектор ведь можно сменить раз данный не всегда срабатывает?) к примеру класс или ид?)

Val:
2. Попробуйте: $('a[href*="#"]').click(function(){

так сейчас и есть...

WebStudioPro:
Просто хотел узнать, есть ли нормальный способ чтоб не рвать куски, да чтоб работало меню потом и не в лэндинге.

Конечно есть - не двиг пилить нужно по скрипт, а скрипт под двиг!) тем более что скрипт из 3х строчек)

Я плохо разбираюсь в коде, в основном все методом тыка с помощью гугла)

Но понимаю как оно работает, поэтому для начала взял бы еще пару вариантов скролинга, проверил их работу и оставил бы рабочий или слепил из всех один)
Редактировалось: 1 раз (Последний: 26 декабря 2014 в 20:40)
Посетитель
small user social cms
Медаль
Сообщений: 263
reload:
взял бы еще пару вариантов скролинга
брал, проверял
Получай 2000р. на карту - за каждый хостинг оформленный для клиента. Установка CMS с улучшенным шаблоном бесплатно
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1163
reload:


Val:
2. Попробуйте: $('a[href *= "#"]').click(function(){

так сейчас и есть...

не смотрел как сейчас на сайте)) но в приведенном коде выше не так! =)
Спойлер
в коде селектор $('a[href ^= "#"]') - ищет все элементы a атрибут href которых НАЧИНАЕТСЯ (^) с символа "#".
я же предложил использовать $('a[href *= "#"]') (вместо ^ стоит *) этим мы ищем все элементы <a> с атрибутом href которых содержит "#" в любой позиции строки. Т.е. если # есть (после слеша / или без него неважно), то вешает на эту ссылку обработчик клика.
Редактировалось: 1 раз (Последний: 26 декабря 2014 в 20:54)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
Val:
но в приведенном коде выше не так! =)
да уже заметил как начал серфить)

еще нашел цацку: https://github.com/flesler/jquery.scrollTo
мож пригодиться...
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.