76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<div class="img-slider">
 | 
						|
	{{- with (.Get "dir") -}}
 | 
						|
		{{- $files := readDir (print "/static/" .) }}
 | 
						|
		{{- range $index, $file := $files -}}
 | 
						|
			{{- $isimg := lower $file.Name | findRE "\\.(gif|jpg|jpeg|tiff|png|bmp|webp|avif|jxl)" }}
 | 
						|
			{{- if $isimg }}
 | 
						|
				{{- $linkURL := print $.Site.BaseURL "/" ($.Get "dir") "/" $file.Name | absURL }}
 | 
						|
                <div class="is-slide {{if eq $index 0 }}active{{end}}">
 | 
						|
                    <img src="{{ $linkURL }}" alt="">
 | 
						|
                </div>            
 | 
						|
			{{- end }}
 | 
						|
		{{- end }}
 | 
						|
	{{- end }}
 | 
						|
    <div class="is-navigation">
 | 
						|
        <div class="is-btn active"></div>
 | 
						|
        <div class="is-btn"></div>
 | 
						|
        <div class="is-btn"></div>
 | 
						|
        <div class="is-btn"></div>
 | 
						|
    </div>
 | 
						|
</div>
 | 
						|
<script type="text/javascript">
 | 
						|
    var slides = document.querySelectorAll('.is-slide');
 | 
						|
    var btns = document.querySelectorAll('.is-btn');
 | 
						|
    let currentSlide = 1;
 | 
						|
 | 
						|
    // Javascript for image slider manual navigation
 | 
						|
    var manualNav = function(manual){
 | 
						|
      slides.forEach((slide) => {
 | 
						|
        slide.classList.remove('active');
 | 
						|
 | 
						|
        btns.forEach((btn) => {
 | 
						|
          btn.classList.remove('active');
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      slides[manual].classList.add('active');
 | 
						|
      btns[manual].classList.add('active');
 | 
						|
    }
 | 
						|
 | 
						|
    btns.forEach((btn, i) => {
 | 
						|
      btn.addEventListener("click", () => {
 | 
						|
        manualNav(i);
 | 
						|
        currentSlide = i;
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
    // Javascript for image slider autoplay navigation
 | 
						|
    var repeat = function(activeClass){
 | 
						|
      let active = document.getElementsByClassName('active');
 | 
						|
      let i = 1;
 | 
						|
 | 
						|
      var repeater = () => {
 | 
						|
        setTimeout(function(){
 | 
						|
          [...active].forEach((activeSlide) => {
 | 
						|
            activeSlide.classList.remove('active');
 | 
						|
          });
 | 
						|
 | 
						|
        slides[i].classList.add('active');
 | 
						|
        btns[i].classList.add('active');
 | 
						|
        i++;
 | 
						|
 | 
						|
        if(slides.length == i){
 | 
						|
          i = 0;
 | 
						|
        }
 | 
						|
        if(i >= slides.length){
 | 
						|
          return;
 | 
						|
        }
 | 
						|
        repeater();
 | 
						|
    /// Time in ms
 | 
						|
      }, 5000);
 | 
						|
      }
 | 
						|
      repeater();
 | 
						|
    }
 | 
						|
    repeat();
 | 
						|
    </script>
 |