侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

js实现的焦点轮播图

2024-05-09 星期四 / 0 评论 / 0 点赞 / 99 阅读 / 13208 字

效果图如下: 哇咔咔,好low,并没有什么亮点~ 两份代码思路不同,但是感觉都差不多吧: 代码一: <!DOCTYPE html><html lang="en"><head> <meta c

效果图如下:

哇咔咔,好low,并没有什么亮点~

两份代码思路不同,但是感觉都差不多吧:

代码一:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>焦点轮播图Demo</title>    <style type="text/css">        * {            margin: 0;            padding: 0;            text-decoration: none;        }        body {            padding: 20px;        }        #container {            width: 600px;            height: 400px;            position: relative;            overflow: hidden;            border: 3px solid #333;        }        #list {            width: 4200px;            height: 400px;            position: absolute;            z-index: 1;            left: -600px;        }        #list img {            float: left;        }        #buttons {            position: absolute;            height: 10px;            width: 100px;            z-index: 2;            bottom: 20px;            left: 250px;        }        #buttons span {            cursor: pointer;            float: left;            border: 1px solid #fff;            width: 10px;            height: 10px;            -webkit-border-radius: 50%;            -moz-border-radius: 50%;            border-radius: 50%;            background-color: #333;            margin-right: 5px;        }        #buttons .on {            background: orangered;        }        .arrow {            cursor: pointer;            text-align: center;            position: absolute;            z-index: 2;            font-size: 36px;            width: 40px;            height: 40px;            top: 180px;            background-color: RGBA(0, 0, 0, .3);            color: #fff;            line-height: 45px;            display: none;        }        .arrow:hover {            background-color: RGBA(0, 0, 0, .7);        }        #container:hover .arrow {            display: block;        }        #prev {            left: 20px;        }        #next {            right: 20px;        }    </style>    <script type="text/javascript">        window.onload = function () {            var container = document.getElementById('container');            var list = document.getElementById('list');            var buttons = document.getElementById('buttons').getElementsByTagName('span');            var prev = document.getElementById('prev');            var next = document.getElementById('next');            var animateComplete = true;//动画是否切换完成            var timer;//定时器            function setButtonClass(offset) {                var index = Math.abs(offset / 600);                for (var i = 0; i < buttons.length; i++) {                    if (buttons[i].className) {                        buttons[i].removeAttribute('class');                        break;                    }                }                buttons[index - 1].setAttribute('class', 'on');            }            function animated(offset) {                animateComplete = false;                var newLeft = parseInt(list.style.left) + offset;                var time = 300;//位移总时间                var interval = 10;//位移的间隔时间                var speed = offset/(time/interval);//每次位移走的距离                function go(){                    if((speed<0 && parseInt(list.style.left)>newLeft) || (speed>0 && parseInt(list.style.left)<newLeft)){                        list.style.left = parseInt(list.style.left)+speed+'px';                        setTimeout(go,interval);                    }else{                        list.style.left = newLeft + 'px';                        if (newLeft > -600) {                            list.style.left = -3000 + 'px';                        }                        if (newLeft < -3000) {                            list.style.left = -600 + 'px';                        }                        setButtonClass(parseInt(list.style.left));                        animateComplete = true;                    }                }                go();            }            function autoPlay(){                timer = setInterval(function(){                    next.onclick();                },2000);            }            function stopAutoPlay(){                clearInterval(timer);            }            prev.onclick = function () {                if(animateComplete){                    animated(600);                }            };            next.onclick = function () {                if(animateComplete){                    animated(-600);                }            };            //按钮切换            for (var i = 0, length = buttons.length; i < length; i++) {                buttons[i].onclick = function () {                    if (this.className === 'on') {                        return;                    }                    if(animateComplete){                        var index = this.getAttribute('index');                        var newLeft = index * (-600);                        if(parseInt(list.style.left) === -3000 && newLeft === -600){                            animated(-600);                        }else if(parseInt(list.style.left) === -600 && newLeft === -3000){                            animated(600);                        }else{                            animated(newLeft-parseInt(list.style.left));                        }                    }                }            }            container.onmouseover = stopAutoPlay;            container.onmouseout = autoPlay;            autoPlay();        }    </script></head><body><div id="container">    <div id="list" style="left: -600px">        <img src="img/5.jpg" alt="5">        <img src="img/1.jpg" alt="1">        <img src="img/2.jpg" alt="2">        <img src="img/3.jpg" alt="3">        <img src="img/4.jpg" alt="4">        <img src="img/5.jpg" alt="5">        <img src="img/1.jpg" alt="1">    </div>    <div id="buttons">        <span index="1" class="on"></span>        <span index="2"></span>        <span index="3"></span>        <span index="4"></span>        <span index="5"></span>    </div>    <a href="javascript:;" id="prev" class="arrow">&lt;</a>    <a href="javascript:;" id="next" class="arrow">&gt;</a></div></body></html>

代码二:

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>焦点轮播图</title>    <style type="text/css">        * {            margin: 0;            padding: 0;            text-decoration: none;        }        body {            padding: 20px;        }        #container {            width: 600px;            height: 400px;            border: 3px solid #333;            overflow: hidden;            position: relative;        }        #list {            width: 4200px;            height: 400px;            position: absolute;            z-index: 1;        }        #list img {            float: left;        }        #buttons {            position: absolute;            height: 10px;            width: 100px;            z-index: 2;            bottom: 20px;            left: 250px;        }        #buttons span {            cursor: pointer;            float: left;            border: 1px solid #fff;            width: 10px;            height: 10px;            border-radius: 50%;            background: #333;            margin-right: 5px;        }        #buttons .on {            background: orangered;        }        .arrow {            cursor: pointer;            display: none;            line-height: 39px;            text-align: center;            font-size: 36px;            font-weight: bold;            width: 40px;            height: 40px;            position: absolute;            z-index: 2;            top: 180px;            background-color: RGBA(0, 0, 0, .3);            color: #fff;        }        .arrow:hover {            background-color: RGBA(0, 0, 0, .7);        }        #container:hover .arrow {            display: block;        }        #prev {            left: 20px;        }        #next {            right: 20px;        }    </style>    <script type="text/javascript">        window.onload = function () {            var container = document.getElementById('container');            var list = document.getElementById('list');            var buttons = document.getElementById('buttons').getElementsByTagName('span');            var prev = document.getElementById('prev');            var next = document.getElementById('next');            var index = 1;            var len = 5;            var animated = false;            var interval = 3000;            var timer;            function animate(offset) {                if (offset == 0) {                    return;                }                animated = true;                var time = 300;                var inteval = 10;                var speed = offset / (time / inteval);                var left = parseInt(list.style.left) + offset;                var go = function () {                    if ((speed > 0 && parseInt(list.style.left) < left) || (speed < 0 && parseInt(list.style.left) > left)) {                        list.style.left = parseInt(list.style.left) + speed + 'px';                        setTimeout(go, inteval);                    }                    else {                        list.style.left = left + 'px';                        if (left > -200) {                            list.style.left = -600 * len + 'px';                        }                        if (left < (-600 * len)) {                            list.style.left = '-600px';                        }                        animated = false;                    }                }                go();            }            function showButton() {                for (var i = 0; i < buttons.length; i++) {                    if (buttons[i].className == 'on') {                        buttons[i].className = '';                        break;                    }                }                buttons[index - 1].className = 'on';            }            function play() {                timer = setTimeout(function () {                    next.onclick();                    play();                }, interval);            }            function stop() {                clearTimeout(timer);            }            next.onclick = function () {                if (animated) {                    return;                }                if (index == 5) {                    index = 1;                }                else {                    index += 1;                }                animate(-600);                showButton();            }            prev.onclick = function () {                if (animated) {                    return;                }                if (index == 1) {                    index = 5;                }                else {                    index -= 1;                }                animate(600);                showButton();            }            for (var i = 0; i < buttons.length; i++) {                buttons[i].onclick = function () {                    if (animated) {                        return;                    }                    if (this.className == 'on') {                        return;                    }                    var myIndex = parseInt(this.getAttribute('index'));                    var offset = -600 * (myIndex - index);                    animate(offset);                    index = myIndex;                    showButton();                }            }            container.onmouseover = stop;            container.onmouseout = play;            play();        }    </script></head><body><div id="container">    <div id="list" style="left: -600px;">        <img src="img/5.jpg" alt="1"/>        <img src="img/1.jpg" alt="1"/>        <img src="img/2.jpg" alt="2"/>        <img src="img/3.jpg" alt="3"/>        <img src="img/4.jpg" alt="4"/>        <img src="img/5.jpg" alt="5"/>        <img src="img/1.jpg" alt="5"/>    </div>    <div id="buttons">        <span index="1" class="on"></span>        <span index="2"></span>        <span index="3"></span>        <span index="4"></span>        <span index="5"></span>    </div>    <a href="javascript:;" id="prev" class="arrow">&lt;</a>    <a href="javascript:;" id="next" class="arrow">&gt;</a></div></body></html>

 

广告 广告

评论区