Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как поставить якорь на нужный блок в карточке?


Recommended Posts

Ставлю якорь 

<a href="#block">Якорь</a>

хочу сделать прокрутку до нужного блока в карточке
меня перенаправляет по такой ссылке
site.com/#block
не могу понять по какой причине перенаправляет на главную с якорем а не просто на якорь в карточке

Надіслати
Поділитися на інших сайтах


  В 11.09.2020 в 07:37, qpldl сказав:

Ставлю якорь 

<a href="#block">Якорь</a>

хочу сделать прокрутку до нужного блока в карточке
меня перенаправляет по такой ссылке
site.com/#block
не могу понять по какой причине перенаправляет на главную с якорем а не просто на якорь в карточке

Expand  

через id делать нужно, а не так как вы.

 

<style>
html {
  scroll-behavior: initial; /* свойство scroll-behavior не наследуется, применяется к прокручиваемым блокам */ 
}
</style>

<a href="#page1">НАЖАТЬ1</a>&emsp;
<a href="#page2">НАЖАТЬ2</a>&emsp;
<a href="#page3">НАЖАТЬ3</a>&emsp;
<div id="page1">1<br>11<br>111</div>
<div id="page2">2<br>22<br>222<br>2222<br>22222<br>222222<br>2222222</div>
<div id="page3">3<br>33<br>333<br>3333</div>
Змінено користувачем bodyak0
Надіслати
Поділитися на інших сайтах


  В 11.09.2020 в 08:04, bodyak0 сказав:

через id делать нужно, а не так как вы.

 

<style>
html {
  scroll-behavior: initial; /* свойство scroll-behavior не наследуется, применяется к прокручиваемым блокам */ 
}
</style>

<a href="#page1">НАЖАТЬ1</a>&emsp;
<a href="#page2">НАЖАТЬ2</a>&emsp;
<a href="#page3">НАЖАТЬ3</a>&emsp;
<div id="page1">1<br>11<br>111</div>
<div id="page2">2<br>22<br>222<br>2222<br>22222<br>222222<br>2222222</div>
<div id="page3">3<br>33<br>333<br>3333</div>
Expand  

 

так я так и делаю, не работает

Надіслати
Поділитися на інших сайтах


попробуйте с адресом страницы

<a href="тут ссылка на страницу#block">Якорь</a>
Надіслати
Поділитися на інших сайтах

  В 11.09.2020 в 08:14, fanatic сказав:

попробуйте с адресом страницы

<a href="тут ссылка на страницу#block">Якорь</a>
Expand  

 

а как адрес каждого продукта подставить?

Надіслати
Поділитися на інших сайтах


Как вариант, в product.tpl перед <?php echo $footer; ?> , добавить

			<script>
				  $(document).ready(function(){
					  $('a[href^="#"]').click(function(){
						if(document.getElementById($(this).attr('href').substr(1)) != null) { 
						   $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500);
						}     
						return false;
					  });
				  });
			</script>

 

  • +1 1
Надіслати
Поділитися на інших сайтах

  В 11.09.2020 в 08:24, Tom сказав:

Как вариант, в product.tpl перед <?php echo $footer; ?> , добавить

Expand  

это да, как вариант

 но, почему не работают якоря, без ссылки на страницу?

 

Надіслати
Поділитися на інших сайтах

  В 11.09.2020 в 08:15, qpldl сказав:

а как адрес каждого продукта подставить?

Expand  
$this->url->link('product/product', 'product_id=' . $product_info['product_id'])

 

Надіслати
Поділитися на інших сайтах

  В 11.09.2020 в 08:24, Tom сказав:

Как вариант, в product.tpl перед <?php echo $footer; ?> , добавить

			<script>
				  $(document).ready(function(){
					  $('a[href^="#"]').click(function(){
						if(document.getElementById($(this).attr('href').substr(1)) != null) { 
						   $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500);
						}     
						return false;
					  });
				  });
			</script>

 

Expand  

 

Спасибо! Работает

Надіслати
Поділитися на інших сайтах


что интересно, на обычной  html странице(без движка), все работает

в движке, без ссылки на страницу, ни в какую. 

чего я не знаю?

Надіслати
Поділитися на інших сайтах

  В 11.09.2020 в 08:38, spectre сказав:

видимо base

Expand  

не понял

намек на основы, или что?

Надіслати
Поділитися на інших сайтах

  В 11.09.2020 в 08:51, fanatic сказав:

не понял

Expand  

дошло, спасибо 

получается, сам того не зная, я правильно посоветовал в первом своем сообщении, переопределить base(добавить ссылку перед якорем)

Надіслати
Поділитися на інших сайтах

  • 4 months later...
  В 11.09.2020 в 08:24, Tom сказав:

Как вариант, в product.tpl перед <?php echo $footer; ?> , добавить

			<script>
				  $(document).ready(function(){
					  $('a[href^="#"]').click(function(){
						if(document.getElementById($(this).attr('href').substr(1)) != null) { 
						   $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500);
						}     
						return false;
					  });
				  });
			</script>

 

Expand  

 

Tom спасибо! ваше решение работает, но не переключаются табы.

Не сталкивались как решить этот недостаток?

Надіслати
Поділитися на інших сайтах


Можно попробовать имитировать нажатие на соотв. ссылку таба после окончания прокрутки:
Примерно так:

$('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500, function() {
    // здесь выполняется код после окончания анимации.
	$('---тэг ссылки на нужный таб---').trigger('click');
});

 

Змінено користувачем Prooksius
Надіслати
Поділитися на інших сайтах

аа, неправильно понял сначала.
 

<script>
  $(document).ready(function(){
    $('a[href^="#"]').click(function(){
      if ($(this).attr('data-toggle') == 'tab') { // проверяет, не является ли эта ссылка - табом
      	return true;
      }
      if(document.getElementById($(this).attr('href').substr(1)) != null) { 
        $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500);
      }     
      return false;
    });
  });
</script>

 

Змінено користувачем Prooksius
  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.