A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/bootstrap-vue/bootstrap-vue/commit/22268aa below:

add quick links to docs pages for small screens and add section… · bootstrap-vue/bootstrap-vue@22268aa · GitHub

1 +

<template>

2 +

<nav

3 +

:class="['bd-quick-links', 'mb-3', { 'd-none': !quickLinksVisible || !hasContent }]"

4 +

:aria-hidden="hasContent ? null : 'true'"

5 +

>

6 +

<header v-if="hasContent">

7 +

<b-button

8 +

v-b-toggle.bd-quick-links-collapse

9 +

class="font-weight-bold"

10 +

variant="outline-secondary"

11 +

size="sm"

12 +

block

13 +

>

14 +

<span v-if="quickLinksExpanded">Hide</span>

15 +

<span v-else>Show</span>

16 +

page table of contents

17 +

</b-button>

18 +

</header>

19 +

<b-collapse v-if="hasContent" id="bd-quick-links-collapse" v-model="quickLinksExpanded" tag="ul">

20 +

<li v-for="h2 in toc.toc" :key="h2.href">

21 +

<b-link :href="h2.href" @click="scrollIntoView($event, h2.href)">

22 +

<span v-html="h2.label"></span>

23 +

</b-link>

24 +

<ul v-if="h2.toc && h2.toc.length > 0" :key="`sub-${h2.href}`">

25 +

<li v-for="h3 in h2.toc" :key="h3.href">

26 +

<b-link :href="h3.href" @click="scrollIntoView($event, h3.href)">

27 +

<span v-html="h3.label"></span>

28 +

</b-link>

29 +

</li>

30 +

</ul>

31 +

</li>

32 +

</b-collapse>

33 +

</nav>

34 +

</template>

35 + 36 +

<style scoped lang="scss">

37 +

#bd-quick-links-collapse {

38 +

list-style-type: square;

39 +

border-left: 5px solid #ccc;

40 +

padding-left: 2.5rem;

41 +

margin-top: 1rem;

42 + 43 +

ul {

44 +

list-style-type: circle;

45 +

padding-left: 1.25rem;

46 +

margin-bottom: 0.25rem;

47 +

}

48 +

}

49 +

</style>

50 + 51 +

<script>

52 +

import { offsetTop, scrollTo } from '~/utils'

53 + 54 +

export default {

55 +

name: 'BDVQuickToc',

56 +

data() {

57 +

return {

58 +

toc: {},

59 +

offset: 0,

60 +

quickLinksExpanded: false,

61 +

quickLinksVisible: false

62 +

}

63 +

},

64 +

computed: {

65 +

hasContent() {

66 +

return !!this.toc.toc

67 +

}

68 +

},

69 +

created() {

70 +

this.$root.$on('docs-set-toc', toc => {

71 +

// Reset visible/expanded states

72 +

this.quickLinksVisible = false

73 +

this.quickLinksExpanded = false

74 +

// Update the TOC content

75 +

this.toc = toc

76 +

// Re-position the quick links

77 +

this.positionQuickLinks()

78 +

})

79 +

},

80 +

mounted() {

81 +

// Set the correct offset based on the header height

82 +

const $header = document.body.querySelector('header.navbar')

83 +

if ($header) {

84 +

this.offset = $header.offsetHeight + 6

85 +

}

86 +

// Re-position the quick links

87 +

this.positionQuickLinks()

88 +

},

89 +

methods: {

90 +

scrollIntoView(evt, href) {

91 +

evt.preventDefault()

92 +

evt.stopPropagation()

93 +

// We use an attribute `querySelector()` rather than `getElementByID()`,

94 +

// as some auto-generated ID's are invalid or not unique

95 +

const id = (href || '').replace(/#/g, '')

96 +

const $el = document.body.querySelector(`[id="${id}"]`)

97 +

if ($el) {

98 +

// Get the document scrolling element

99 +

const scroller = document.scrollingElement || document.documentElement || document.body

100 +

// Scroll heading into view (minus offset to account for nav top height

101 +

scrollTo(scroller, offsetTop($el) - 70, 100, () => {

102 +

// Set a tab index so we can focus header for a11y support

103 +

$el.tabIndex = -1

104 +

// Focus the heading

105 +

$el.focus()

106 +

})

107 +

}

108 +

},

109 +

positionQuickLinks() {

110 +

if (typeof document === 'undefined') {

111 +

return

112 +

}

113 +

// Move the quick links to the correct position, if possible

114 +

const $body = document.body

115 +

const $referenceNode = $body.querySelector('.bd-lead') || $body.querySelector('h1')

116 +

if ($referenceNode) {

117 +

// IE 11 doesn't support the `node.after()` method, and appears

118 +

// that the polyfill doesn't polyfill this method

119 +

$referenceNode.insertAdjacentElement('afterend', this.$el)

120 +

}

121 +

// Make the quick links visible

122 +

// We hide them initially to make the position change not that distracting

123 +

this.quickLinksVisible = true

124 +

}

125 +

}

126 +

}

127 +

</script>


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4