1. 程式人生 > >原生JS實現圖片滿屏自動輪播求助,大神趕緊來吧!

原生JS實現圖片滿屏自動輪播求助,大神趕緊來吧!

上週去面試前端開發,那個程式猿大哥就直接讓我上機操練了,做一個“簡單”的網頁,當然,對我來說是很難的,畢竟剛開始學習。模板網頁的地址在這裡,有兩個:

搞了好長時間都沒弄出來,真的快要崩潰了,我就直接上程式碼吧,哪位大神看到支支招,給一些關鍵的建議,主要是滿屏圖片輪播不知道怎麼搞,求給一些思路,不能用Bootstrap等框架,要用原生的。

我直接上程式碼吧!

HTML部分(只貼了關鍵程式碼)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name=”viewport” content=”width=device-width, initial-scale=1″ />
    <title>深藍網路</title>
 
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
 
</head>
<body>   
    <div class="container">
    <div class="wrap">
        <img src="img/ad_01.jpg" alt="">
        <img src="img/ad_02.jpg" alt="">
        <img src="img/ad_03.jpg" alt="">
        <img src="img/ad_04.jpg" alt="">
        <img src="img/ad_01.jpg" alt="">
    </div>
    </div>
    <div class="aside">
        <span>再小的品牌,也有自己的平臺</span>
        <div class="btn">
            <a href="#">立即登入</a>
        </div>
        <div class="down">
            <img src="img/down.png" alt="">
        </div>
    </div>
    ...

CSS部分

*{
    margin:0;
    padding:0;
  }
  body{
    background-color: #e7e8eb;
    font-family: 微軟雅黑,"Microsoft YaHei";
  }
  .wp{
    width:1230px;
    margin: 0 auto;
  }
.container {
    position: relative;
    width: 100%;
    height: 100%;
    margin:0 auto;
    box-shadow: 0 0 5px green;
    overflow:hidden;
  }
  .container .wrap {
    position: absolute;
    width: auto;
    height: auto;
    z-index: 1;
  }
  .container .wrap img {
    float: left;
    width: 100%;
    height: 100%;
    max-width: 100%;
  }
 
  .container .buttons {
    position: absolute;
    right: 5px;
    bottom:40px;
    width: 150px;
    height: 10px;
    z-index: 2;
  }
  .container .buttons span {
    margin-left: 5px;
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: green;
    text-align: center;
    color:white;
    cursor: pointer;
  }
  .container .buttons span.on{
    background-color: red;
  }
.aside{
    position: absolute;
    top:400px;
    z-index: 99;
    width: 100%;
    text-align: center;
  }
  .aside span{
    font-size: 60px;
    color: #FFF;
    height: 70px;
  
  }
  .down{
    display: inline-block;
    width: 35px;
    height:37px;
    margin: 0 auto;
  }
  .btn{
    background-color: #428bca;
    border: none;
    width: 140px;
    height: 50px;
    border-radius: 10%;
    margin-left: auto;
    margin-right: auto;
    margin-top:200px;
    margin-bottom: 80px;
}
.btn a{
  text-decoration: none;
  color: #fff;
  font-size: 20px;
  display: inline-block;
  margin: 10px;
}

.btn:hover{
  background-color: #356792;
}

JS部分

window.onload=function(){
var wrap = document.querySelector(".wrap");
var next = document.querySelector(".arrow_right");
var prev = document.querySelector(".arrow_left");
var container = document.querySelector(".container");
var imgs = wrap.children;
var index = 0;
/*這個地方想直接動態的將瀏覽器的寬高賦值給容器和圖片集的區域,但是好像沒啥用*/
var cliWidth = this.document.body.clientWidth;
var clientHeight = this.document.body.clientHeight;
container.clientWidth = cliWidth;
container.clientHeight = cliHeight;
wrap.clientWidth = cliWidth;
wrap.clientHeight = cliHeight;

/*
next.onclick = function () {
    next_pic();
    
}
prev.onclick = function () {
    prev_pic();
}
*/
/*切換到下一張圖*/
/*這裡來進行切換*/
function next_pic () {
    index++;
    if(index > 3){
    index = 0;
    }
//    showCurrentDot();
    var newLeft;
    if(wrap.style.left === ((-cliWidth*4)+'px')){
    newLeft = -cliWidth;
    }else{
    newLeft = parseInt(wrap.style.left)-cliWidth;
    }
    wrap.style.left = newLeft + "px";
}
/*切換到上一張圖*/
/*不用按鈕,所以把上一張圖的程式碼給註釋掉
function prev_pic () {
    index--;
    if(index < 0){
    index = 3;
    }
    showCurrentDot();
    var newLeft;
    if(wrap.style.left === "0px"){
    newLeft = -7680;
    }else{
    newLeft = parseInt(wrap.style.left)+1920;
    }
    wrap.style.left = newLeft + "px";
}*/
/*設定定時器和自動播放
var timer = null;
function autoPlay () {
    timer = setInterval(function () {
    next_pic();
 //    alert(index);
    },4000);
}
autoPlay();

給一些具體思路給我