Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在每4秒更改一次的自动幻灯片中显示动态添加的图像_Javascript_Html_Sharepoint - Fatal编程技术网

Javascript 如何在每4秒更改一次的自动幻灯片中显示动态添加的图像

Javascript 如何在每4秒更改一次的自动幻灯片中显示动态添加的图像,javascript,html,sharepoint,Javascript,Html,Sharepoint,我正在尝试创建一个自动幻灯片,从Sharepoint列表中动态检索图像和链接,并在幻灯片中显示。我能够检索图像和href链接,但它们一个接一个地出现,有点像这样:- 我希望每一张都在不同的幻灯片中。有点像这样:- 代码如下:- <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1&quo

我正在尝试创建一个自动幻灯片,从Sharepoint列表中动态检索图像和链接,并在幻灯片中显示。我能够检索图像和href链接,但它们一个接一个地出现,有点像这样:-

我希望每一张都在不同的幻灯片中。有点像这样:-

代码如下:-

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">



<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>


$(document).ready(function() {
        // Rest URL
        var listUrl = "/_api/Web/Lists/GetByTitle('Banner_test')/items?$select=Image_for_header,Link_for_header,Id";  //Banner_test is the title of Sharepoint list, Image_for_header, Link_for_header and Id are the column names
        getItem(listUrl) ;     
        });
        
        
        function getItem(listUrl) {  
        $.ajax({  
            url: _spPageContextInfo.webAbsoluteUrl + listUrl,  
            type: "GET",  
            headers: {  
                "accept": "application/json;odata=verbose",  
            },  
            success: function(data) {  
            
                       
               console.log(data.d.results);  
             var items = data.d.results;  
             var demop = document.getElementById("banner");
        for (var i = 0; i < items.length; i++) { 
        
                 
         
        demop.innerHTML +="<a target=_blank href="+(items[i].Link_for_header).Url+"><img width=100% src="+(items[i].Image_for_header).Url+"></a>";
        
            
              
           
         
           
                                           }  
                                           
                                        
            demop.appendChild(demop)                                                   
                              
                              
                             
               
            },  
            error: function(error) {  
                alert(JSON.stringify(error));  
            }  
        });  
    } 
    
</script>
<style>
* {box-sizing: border-box;}
html, body {
    width: 100%;
    height: 100%;
    padding: 0
    font-family: Verdana, sans-serif;
    margin:0px;
    }
.mySlides {display: none;}
img {vertical-align: middle;}



/* Slideshow container */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}



/* The dots/bullets/indicators */
.dot {
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active {
  background-color: #717171;
}

/* Fading animation */
.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 0.5s;
  animation-name: fade;
  animation-duration: 0.5s;
  /* /filter: contrast(50%); */
  }

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

/* On smaller screens, decrease text size */
@media only screen and (max-width: 300px) {
  .text {font-size: 11px}
}
</style>
</head>
<body>



<div  id = 'banner'>




</div>
<br>

<div style="text-align:center">
  <span class="dot"></span> 
  <span class="dot"></span> 
  <span class="dot"></span> 
</div>

<script>
var slideIndex = 0;
showSlides();

function showSlides() {
  var i;
  var slides = document.getElementsByTagName("a") !important;
  //var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  for (i = 0; i < slides.length; i++) {
    slides[i].style.display = "none";  
  }
  slideIndex++;
  if (slideIndex > slides.length) {slideIndex = 1}    
  for (i = 0; i < dots.length; i++) {
    dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block";  
  dots[slideIndex-1].className += " active";
  setTimeout(showSlides, 4000); // Change image every 4 seconds
  
}
</script>

</body>
</html> 
我知道我可能犯了一些愚蠢的错误,但我不能指出这一点,因为我是javascript新手

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>


    $(document).ready(function () {
        // Rest URL
        var listUrl = "/_api/Web/Lists/GetByTitle('Banner_test')/items?$select=Image_for_header,Link_for_header,Id";  //Banner_test is the title of Sharepoint list, Image_for_header, Link_for_header and Id are the column names
        getItem(listUrl);
    });


    function getItem(listUrl) {
        $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl + listUrl,
            type: "GET",
            headers: {
                "accept": "application/json;odata=verbose",
            },
            success: function (data) {

                console.log(data.d.results);
                var items = data.d.results;
                //var items = ["https://placeimg.com/640/480/animals", "https://placeimg.com/640/480/arch", "https://placeimg.com/640/480/nature"]

                var demop = document.getElementById("banner");
                for (var i = 0; i < items.length; i++) {
                    demop.innerHTML += "<a target=_blank href='" + (items[i].Link_for_header).Url + "'><div class='mySlides fade'>  <div class='numbertext'>" + i + " / 3</div><img src='" + items[i].Image_for_header).Url + "' style='width: 640px'> <div class='text'>Caption Text</div></div></a>";

                }
            },
            error: function (error) {
                alert(JSON.stringify(error));
            }
        });
    }

    var slideIndex = 1;


    function plusSlides(n) {
        showSlides(slideIndex += n);
    }

    function currentSlide(n) {
        showSlides(slideIndex = n);
    }

    function showSlides(n) {
        var i;
        var slides = document.getElementsByClassName("mySlides");
        var dots = document.getElementsByClassName("dot");
        if (n > slides.length) { slideIndex = 1 }
        if (n < 1) { slideIndex = slides.length }
        for (i = 0; i < slides.length; i++) {
            slides[i].style.display = "none";
        }
        for (i = 0; i < dots.length; i++) {
            dots[i].className = dots[i].className.replace(" active", "");
        }
        slides[slideIndex - 1].style.display = "block";
        dots[slideIndex - 1].className += " active";
    }

</script>
<style>
    * {
        box-sizing: border-box
    }

    body {
        font-family: Verdana, sans-serif;
        margin: 0
    }

    .mySlides {
        display: none
    }

    img {
        vertical-align: middle;
    }

    /* Slideshow container */
    .slideshow-container {
        max-width: 1000px;
        position: relative;
        margin: auto;
    }

    /* Next & previous buttons */
    .prev,
    .next {
        cursor: pointer;
        position: absolute;
        top: 50%;
        width: auto;
        padding: 16px;
        margin-top: -22px;
        color: white;
        font-weight: bold;
        font-size: 18px;
        transition: 0.6s ease;
        border-radius: 0 3px 3px 0;
        user-select: none;
    }

    /* Position the "next button" to the right */
    .next {
        right: 0;
        border-radius: 3px 0 0 3px;
    }

    /* On hover, add a black background color with a little bit see-through */
    .prev:hover,
    .next:hover {
        background-color: rgba(0, 0, 0, 0.8);
    }

    /* Caption text */
    .text {
        color: #f2f2f2;
        font-size: 15px;
        padding: 8px 12px;
        position: absolute;
        bottom: 8px;
        width: 100%;
        text-align: center;
    }

    /* Number text (1/3 etc) */
    .numbertext {
        color: #f2f2f2;
        font-size: 12px;
        padding: 8px 12px;
        position: absolute;
        top: 0;
    }

    /* The dots/bullets/indicators */
    .dot {
        cursor: pointer;
        height: 15px;
        width: 15px;
        margin: 0 2px;
        background-color: #bbb;
        border-radius: 50%;
        display: inline-block;
        transition: background-color 0.6s ease;
    }

    .active,
    .dot:hover {
        background-color: #717171;
    }

    /* Fading animation */
    .fade {
        -webkit-animation-name: fade;
        -webkit-animation-duration: 1.5s;
        animation-name: fade;
        animation-duration: 1.5s;
    }

    @-webkit-keyframes fade {
        from {
            opacity: .4
        }

        to {
            opacity: 1
        }
    }

    @keyframes fade {
        from {
            opacity: .4
        }

        to {
            opacity: 1
        }
    }

    /* On smaller screens, decrease text size */
    @media only screen and (max-width: 300px) {

        .prev,
        .next,
        .text {
            font-size: 11px
        }
    }
</style>
如果它解决了您的问题,请将其标记为答案 快乐编码。。
Sumit Kanchan

我尝试了这个代码Sumit,但我现在只得到了3个点,没有图像,用引导修复了它。顺便说一下,谢谢你的回答。
<div id='banner'>

</div>
<br>

<div style="text-align:center">
    <span class="dot" onclick="currentSlide(1)"></span>
    <span class="dot" onclick="currentSlide(2)"></span>
    <span class="dot" onclick="currentSlide(3)"></span>
</div>