Виджеты: кнопки навигации.

Пользовательский элемент <devsite-nav-buttons> позволяет группе кнопок перезагрузить текущую страницу с другим параметром строки запроса.

Демо

Java sample code

Использование

Для использования создайте элемент <devsite-nav-buttons> с атрибутом name и поместите в него несколько элементов button с разными атрибутами value . Для каждой группы кнопок выберите одну по умолчанию, добавив к элементу атрибут default .

<devsite-nav-buttons name="language">
  <button value="java" default>Java example</button>
  <button value="python">Python example</button>
  <button value="go">Go example</button>
</devsite-nav-buttons>

В файле Markdown ( .md ) убедитесь, что пользовательский элемент обернут стандартным элементом HTML, например section , div или p :

<div>
  <devsite-nav-buttons name="language">
    <button value="java" default>Java example</button>
    <button value="python">Python example</button>
    <button value="go">Go example</button>
  </devsite-nav-buttons>
</div>

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

{% dynamic if request.query_string.language == "python" %}
Python sample code
{% dynamic elif request.query_string.language == "go" %}
Go sample code
{% dynamic else %}
Java sample code
{% dynamic endif %}

Внутристраничная ссылка с идентификатором

Как правило, лучше всего размещать элемент <devsite-nav-buttons> в верхней части страницы, поскольку нажатие любой из его кнопок приводит пользователей к новому URL-адресу и перезагружает страницу. Если вы используете элемент в середине страницы и/или хотите, чтобы расположение элемента на странице можно было добавить в закладки, вам следует указать уникальный id элемента, который добавит именованный якорь к URL-адресу и заставит страницу прокручиваться. к местоположению элемента при загрузке страницы.

<devsite-nav-buttons name="language" id="code-examples">
  <button value="java" default>Java example</button>
  <button value="python">Python example</button>
  <button value="go">Go example</button>
</devsite-nav-buttons>

Параметры параметра URL-адреса

По умолчанию после того, как пользователь нажимает одну из кнопок, значение кнопки сохраняется в localStorage. Выбранное значение автоматически добавляется в адресную строку в качестве параметра URL на других страницах с элементами <devsite-nav-buttons> , которые используют те же поля name и value .

Удалите параметр URL для кнопки по умолчанию.

Чтобы переопределить поведение по умолчанию и удалить параметр URL-адреса при нажатии кнопки default , добавьте к элементу param="reset" :

<devsite-nav-buttons name="language" param="reset">
  <button value="java" default>Java example</button>
  <button value="python">Python example</button>
  <button value="go">Go example</button>
</devsite-nav-buttons>

Всегда отображать параметр URL для кнопки по умолчанию

Когда пользователь впервые посещает страницу с элементом <devsite-nav-buttons> , кнопка default выделяется, и адресная строка не изменяется до тех пор, пока не будет нажата кнопка.

Чтобы обновить адресную строку параметром URL-адреса для кнопки default и гарантировать, что параметр URL-адреса всегда присутствует на страницах с элементом <devsite-nav-buttons> , добавьте к элементу param="always" :

<devsite-nav-buttons name="language" param="always">
  <button value="java" default>Java example</button>
  <button value="python">Python example</button>
  <button value="go">Go example</button>
</devsite-nav-buttons>

Стиль кнопки

По умолчанию кнопки внутри элемента <devsite-nav-buttons> имеют стиль «чип». Чтобы увеличить или уменьшить визуальное воздействие кнопок, вы можете добавить атрибут type со значением filled или text , который будет стилизовать каждый элемент button .

Стиль кнопки с type="filled" :

<devsite-nav-buttons name="language" type="filled">
  <button value="java" default>Java example</button>
  <button value="python">Python example</button>
  <button value="go">Go example</button>
</devsite-nav-buttons>

Стиль кнопки с помощью type="text" :

<devsite-nav-buttons name="language" type="text">
  <button value="java" default>Java example</button>
  <button value="python">Python example</button>
  <button value="go">Go example</button>
</devsite-nav-buttons>