I want to transform nav bar links from nav-link
into btn
on window resize. When the windows size >=601
– the nav-item change. But the problem is when the width goes bigger than 600
. The nav link is not toggle the nav-link
class.
JavaScript
x
15
15
1
var alterClass = function() {
2
var ww = document.body.clientWidth;
3
if (ww <= 600) {
4
$('li.nav-item a').removeClass('nav-link');
5
console.log('nav-link removed')
6
} else if (ww >= 601) {
7
$('li.nav-item a').addClass('btn btn-primary');
8
console.log('btn-primary added');
9
};
10
};
11
$(window).resize(function() {
12
alterClass();
13
});
14
//Fire it when the page first loads:
15
alterClass();
JavaScript
1
19
19
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
3
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"/>
4
5
6
<ul class="nav nav-pills nav-fill">
7
<li class="nav-item">
8
<a class="nav-link" aria-current="page" href="#">Active</a>
9
</li>
10
<li class="nav-item">
11
<a class="nav-link" href="#">Much longer nav link</a>
12
</li>
13
<li class="nav-item">
14
<a class="nav-link" href="#">Link</a>
15
</li>
16
<li class="nav-item">
17
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
18
</li>
19
</ul>
I want the nav-item to transform between nav-link
and btn
on resize.
Please find the fiddle here : https://jsfiddle.net/m6r71gp0/
Advertisement
Answer
I don’t know what might be the problem at your end. May be you were adding and removing classes in wrong order. Check this out and let me know.
JavaScript
1
17
17
1
var alterClass = function() {
2
var ww = document.body.clientWidth;
3
if (ww <= 600) {
4
$('li.nav-item a').removeClass('btn btn-primary');
5
$('li.nav-item a').addClass('nav-link');
6
console.log('turned into link style')
7
} else if (ww >= 601) {
8
$('li.nav-item a').removeClass('nav-link');
9
$('li.nav-item a').addClass('btn btn-primary');
10
console.log('turned into button style');
11
}
12
};
13
$(window).resize(function() {
14
alterClass();
15
});
16
//Fire it when the page first loads:
17
alterClass();
JavaScript
1
19
19
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
3
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />
4
5
6
<ul class="nav nav-pills nav-fill">
7
<li class="nav-item">
8
<a class="nav-link" aria-current="page" href="#">Active</a>
9
</li>
10
<li class="nav-item">
11
<a class="nav-link" href="#">Much longer nav link</a>
12
</li>
13
<li class="nav-item">
14
<a class="nav-link" href="#">Link</a>
15
</li>
16
<li class="nav-item">
17
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
18
</li>
19
</ul>
JSFiddle: https://jsfiddle.net/dL4361x2/1/