JS 三种轮播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *
        {
            margin: 0;
        }
        div
        {
            width: 100%;
            height:455px;
            background-image: url("./img/a.jpeg");
            background-size: 100% 100%;
            transition: all 1s;
        }

        img{
            position: absolute;
            display: block;
            right:50px;
            border:2px solid rgba(0,0,0,0);
            top:40px
        }
        img:nth-child(1){
            border: 2px solid #ff9d00;
        }
        img:nth-child(2){
            top:121px;
        }
        img:nth-child(3){
            top:202px;
        }
        img:nth-child(4){
            top:283px;
        }
        img:nth-child(5){
            top:364px;
        }

    </style>
</head>
<body>
    <div>
        <img src="img/icon_a.jpeg">
        <img src="img/icon_b.jpeg">
        <img src="img/icon_c.jpeg">
        <img src="img/icon_d.jpeg">
        <img src="img/icon_e.jpeg">
    </div>
   <script>
        var pre;
       var imgArr=["./img/a.jpeg","./img/b.jpeg","./img/c.jpeg","./img/d.jpeg","./img/e.jpeg"];
       init();
       function init() {
            var imgs=document.getElementsByTagName("img");
            for(var i=0;i<imgs.length;i++){
                imgs[i].addEventListener("click",clickHandler);
            }
            pre=imgs[0];
        }

        function clickHandler(e) {
            var arr=Array.from(this.parentElement.children);
            var index=arr.indexOf(this);
            var div=document.querySelector("div");
            div.style.backgroundImage="url("+imgArr[index]+")";
            pre.style.border="2px solid rgba(0,0,0,0)";
            pre=this;
            pre.style.border="2px solid #ff9d00";
        }
   </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   <script>
       var imgArr=["./img/a.jpeg","./img/b.jpeg","./img/c.jpeg","./img/d.jpeg","./img/e.jpeg"];
       var iconArr=["./img/icon_a.jpeg","./img/icon_b.jpeg","./img/icon_c.jpeg","./img/icon_d.jpeg","./img/icon_e.jpeg"];
        var pre;
       init();
       function init() {
            document.body.style.margin="0px";
            var div=createBg(document.body);
           createIcon(div);
       }
       
       function createBg(parent) {

           var div=document.createElement("div");
           Object.assign(div.style,{
                width:document.documentElement.offsetWidth+"px",
               height:document.documentElement.offsetWidth/3+"px",
               backgroundImage:"url("+imgArr[0]+")",
               backgroundSize:"100% 100%",
               transition: "all 1s"
           });
           parent.appendChild(div);
           return div;
       }
       function createIcon(parent) {
           var margin=40;
           var padding=10;
           var height=(parent.offsetHeight-margin*2-padding*4)/iconArr.length;
           for(var i=0;i<iconArr.length;i++){
               var img=new Image();
               if(i===0) pre=img;
               img.src=iconArr[i];
               Object.assign(img.style,{
                   position:"absolute",
                   display:"block",
                   border:"2px solid "+ (i===0 ? "#ff9d00" : "rgba(0,0,0,0)"),
                   height:(height-4)+"px",
                   right:"50px",
                   top:margin+(height+(i===0 ? 0 : padding))*i+"px"
               });
               parent.appendChild(img);
               img.addEventListener("click",clickHandler);
           }
       }
       
       function clickHandler(e) {
           var arr=Array.from(this.parentElement.children);
           var index=arr.indexOf(this);
           this.parentElement.style.backgroundImage="url("+imgArr[index]+")";
           pre.style.border="2px solid rgba(0,0,0,0)";
           pre=this;
           pre.style.border="2px solid #ff9d00";
       }
   </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .carousel
        {
            width: 960px;
            height:320px;
            margin: auto;
            position: relative;
            overflow: hidden;
        }
        .imgCon
        {
            width: 4800px;
            height: 320px;
            position: absolute;
            left: 0;
            font-size: 0;
            transition: all 2s;

        }
        .imgCon img{
            width: 960px;
            height: 320px;
        }
        .dot
        {
            list-style: none;
            position: absolute;
            bottom: 20px;
            left:380px
        }
        .dot>li{
            width: 18px;
            height: 18px;
            border-radius: 10px;
            border: 1px solid red;
            background-color: rgba(255,0,0,0);
            float: left;
            margin-left: 20px;

        }
        .dot>li:nth-child(1){
            background-color: rgba(255,0,0,0.6);
        }
        .leftBn,.rightBn
        {
            position: absolute;
            top:140px;
        }
        .leftBn{
            left:20px;
        }
        .rightBn{
            right: 20px;
        }
    </style>
</head>
<body>
    <div class="carousel">
        <div class="imgCon">
            <img src="./img/a.jpeg">
            <img src="./img/b.jpeg">
            <img src="./img/c.jpeg">
            <img src="./img/d.jpeg">
            <img src="./img/e.jpeg">
        </div>
        <ul class="dot">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <img src="img/left.png" class="leftBn">
        <img src="img/right.png" class="rightBn">
    </div>
<script>

    var imgCon,pre,lis;
    var position=0;
    init();
    function init() {
        imgCon=document.querySelector(".imgCon");
        lis=document.getElementsByTagName("li");
        var leftBn=document.querySelector(".leftBn");
        var rightBn=document.querySelector(".rightBn");
        leftBn.addEventListener("click",clickHandler);
        rightBn.addEventListener("click",clickHandler);
        for(var i=0;i<lis.length;i++){
            lis[i].addEventListener("click",dotClickHandler);
        }
        pre=lis[0];
    }

    function dotClickHandler(e) {
        var arr=Array.from(lis);
        position=arr.indexOf(this);
        imgMove();
    }

    function clickHandler(e) {
        if(this.className==="leftBn"){
            position--;
            if(position<0) position=4;
        }else{
            position++;
            if(position>4) position=0;
        }
        imgMove();
    }
    
    function imgMove() {
        imgCon.style.left=-position*960+"px";
        if(pre){
            pre.style.backgroundColor="rgba(0,0,0,0)";
        }
        pre=lis[position];
        pre.style.backgroundColor="rgba(255,0,0,0.6)";
    }
</script>
</body>
</html>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值