“图片轮播”的版本间的差异
(创建页面,内容为“https://blog.csdn.net/weixin_34088583/article/details/94541693”) |
|||
| 第1行: | 第1行: | ||
| + | |||
| + | weixin_34088583 | ||
| + | |||
| + | 2017-12-23 阅读数:4 | ||
| + | |||
| + | 关注 | ||
| + | CSS部分: | ||
| + | |||
| + | |||
| + | |||
| + | 1 CSS: | ||
| + | 2 <style type="text/css"> | ||
| + | 3 #banner { | ||
| + | 4 position: relative; | ||
| + | 5 width: 500px; | ||
| + | 6 height: 300px; | ||
| + | 7 margin: 0 auto; | ||
| + | 8 border: 1px solid black; | ||
| + | 9 overflow: hidden; | ||
| + | 10 } | ||
| + | 11 | ||
| + | 12 #banner_move { | ||
| + | 13 position: relative; | ||
| + | 14 top: 0px; | ||
| + | 15 left: 0px; | ||
| + | 16 height: 300px; | ||
| + | 17 width: 5000px; | ||
| + | 18 background-color: #eee; | ||
| + | 19 } | ||
| + | 20 | ||
| + | 21 #banner_move img { | ||
| + | 22 width: 500px; | ||
| + | 23 height: 300px; | ||
| + | 24 float: left; | ||
| + | 25 } | ||
| + | 26 | ||
| + | 27 #banner_btnleft { | ||
| + | 28 position: absolute; | ||
| + | 29 left: 0px; | ||
| + | 30 top: 50%; | ||
| + | 31 margin-top: -40px; | ||
| + | 32 width: 50px; | ||
| + | 33 height: 80px; | ||
| + | 34 background-color: rgba(0,0,0,0.4); | ||
| + | 35 z-index: 99999; | ||
| + | 36 text-align: center; | ||
| + | 37 line-height: 80px; | ||
| + | 38 font-size: 40px; | ||
| + | 39 font-weight: bold; | ||
| + | 40 color: #fff; | ||
| + | 41 cursor: pointer; | ||
| + | 42 display: none; | ||
| + | 43 } | ||
| + | 44 | ||
| + | 45 #banner_btnright { | ||
| + | 46 position: absolute; | ||
| + | 47 right: 0px; | ||
| + | 48 top: 50%; | ||
| + | 49 margin-top: -40px; | ||
| + | 50 width: 50px; | ||
| + | 51 height: 80px; | ||
| + | 52 background-color: rgba(0,0,0,0.4); | ||
| + | 53 z-index: 99999; | ||
| + | 54 text-align: center; | ||
| + | 55 line-height: 80px; | ||
| + | 56 font-size: 40px; | ||
| + | 57 font-weight: bold; | ||
| + | 58 color: #fff; | ||
| + | 59 cursor: pointer; | ||
| + | 60 display: none; | ||
| + | 61 } | ||
| + | 62 | ||
| + | 63 #banner_btns { | ||
| + | 64 position: absolute; | ||
| + | 65 bottom: 10px; | ||
| + | 66 height: 21px; | ||
| + | 67 background-color: rgba(0,0,0,0.7); | ||
| + | 68 border-radius: 15px; | ||
| + | 69 } | ||
| + | 70 | ||
| + | 71 .banner_btns_item { | ||
| + | 72 width: 13px; | ||
| + | 73 height: 13px; | ||
| + | 74 background-color: #fff; | ||
| + | 75 border-radius: 20px; | ||
| + | 76 float: left; | ||
| + | 77 margin: 4px; | ||
| + | 78 } | ||
| + | 79 </style> | ||
| + | |||
| + | |||
| + | HTML部分: | ||
| + | |||
| + | 1 <div id="banner"> | ||
| + | 2 <div id="banner_btnleft" onselectstart="return false"><</div> | ||
| + | 3 <div id="banner_btnright" onselectstart="return false">></div> | ||
| + | 4 <div id="banner_move"> //这里可以插入任意几张图片 | ||
| + | 5 <img src="imgs/1.jpg" /> | ||
| + | 6 <img src="imgs/2.jpg" /> | ||
| + | 7 <img src="imgs/3.jpg" /> | ||
| + | 8 </div> | ||
| + | 9 <div id="banner_btns"> | ||
| + | 10 </div> | ||
| + | 11 </div> | ||
| + | JS部分: | ||
| + | |||
| + | 1 <script type="text/javascript"> | ||
| + | 2 var timer1; | ||
| + | 3 var timer2; | ||
| + | 4 var bannerNow = 1; | ||
| + | 5 var bannerSpeed = 10; | ||
| + | 6 var oMove = document.getElementById('banner_move'); | ||
| + | 7 var oLeft = document.getElementById("banner_btnleft"); | ||
| + | 8 var oRight = document.getElementById("banner_btnright"); | ||
| + | 9 var oBanner = document.getElementById('banner'); | ||
| + | 10 var aa = document.getElementById('aaa'); | ||
| + | 11 | ||
| + | 12 oLeft.onclick = function () { | ||
| + | 13 bannerNow -= 1; | ||
| + | 14 if (bannerNow < 1) bannerNow = oMove.getElementsByTagName("img").length; | ||
| + | 15 StartMove(bannerNow); | ||
| + | 16 } | ||
| + | 17 | ||
| + | 18 oRight.onclick = function () { | ||
| + | 19 bannerNow += 1; | ||
| + | 20 if (bannerNow > oMove.getElementsByTagName("img").length) bannerNow = 1; | ||
| + | 21 StartMove(bannerNow); | ||
| + | 22 } | ||
| + | 23 | ||
| + | 24 oBanner.onmouseover = function () { | ||
| + | 25 StopAutoMove(); | ||
| + | 26 oLeft.style.display = 'block'; | ||
| + | 27 oRight.style.display = 'block'; | ||
| + | 28 } | ||
| + | 29 | ||
| + | 30 oBanner.onmouseout = function () { | ||
| + | 31 AutoMove(); | ||
| + | 32 oLeft.style.display = ''; | ||
| + | 33 oRight.style.display = ''; | ||
| + | 34 } | ||
| + | 35 | ||
| + | 36 AutoMove(); | ||
| + | 37 | ||
| + | 38 for (var i = 0; i < oBanner.getElementsByTagName('img').length; i++) { | ||
| + | 39 if (i == 0) document.getElementById("banner_btns").innerHTML += '<div style="background-color:red;" class="banner_btns_item"></div>'; | ||
| + | 40 else document.getElementById("banner_btns").innerHTML += '<div class="banner_btns_item"></div>'; | ||
| + | 41 } | ||
| + | 42 document.getElementById("banner_btns").style.left = "50%"; | ||
| + | 43 document.getElementById("banner_btns").style.marginLeft = '-' + (document.getElementById("banner_btns").offsetWidth / 2) + 'px'; | ||
| + | 44 | ||
| + | 45 var oBbtns = document.getElementsByClassName('banner_btns_item'); | ||
| + | 46 for (var i = 0; i < oBbtns.length; i++) { | ||
| + | 47 oBbtns[i].index = i + 1; | ||
| + | 48 oBbtns[i].onclick = function () { | ||
| + | 49 bannerNow = this.index; | ||
| + | 50 StartMove(bannerNow); | ||
| + | 51 } | ||
| + | 52 } | ||
| + | 53 | ||
| + | 54 | ||
| + | 55 //轮播方法,参数为你要看的页数 | ||
| + | 56 function StartMove(ind) { | ||
| + | 57 window.clearInterval(timer1); //不管有没有启动定时器,都清空一下,为了保证同时只存在一个定时工作 | ||
| + | 58 timer1 = window.setInterval(function () { | ||
| + | 59 var finish = (ind - 1) * -500; //计算目标位置 | ||
| + | 60 | ||
| + | 61 var btns = document.getElementsByClassName('banner_btns_item'); | ||
| + | 62 for (var i = 0; i < btns.length; i++) { | ||
| + | 63 btns[i].style.backgroundColor = ''; | ||
| + | 64 } | ||
| + | 65 btns[ind - 1].style.backgroundColor = 'red'; | ||
| + | 66 | ||
| + | 67 //计算速度,实现缓冲 | ||
| + | 68 bannerSpeed = Math.ceil(Math.abs((Math.abs(finish) - Math.abs(oMove.offsetLeft)) / 10)); | ||
| + | 69 | ||
| + | 70 //判断是否结束或是移动方向 | ||
| + | 71 if (oMove.offsetLeft == finish) { //结束,停掉定时器 | ||
| + | 72 window.clearInterval(timer1); | ||
| + | 73 } | ||
| + | 74 else { //未结束,继续移动 | ||
| + | 75 if (oMove.offsetLeft > finish) //判断是否向右走 | ||
| + | 76 oMove.style.left = oMove.offsetLeft - bannerSpeed + 'px'; | ||
| + | 77 else //判断是否向左走 | ||
| + | 78 oMove.style.left = oMove.offsetLeft + bannerSpeed + 'px'; | ||
| + | 79 } | ||
| + | 80 }, 20); | ||
| + | 81 } | ||
| + | 82 | ||
| + | 83 //开启自动播放功能 | ||
| + | 84 function AutoMove() { | ||
| + | 85 window.clearInterval(timer2); | ||
| + | 86 timer2 = window.setInterval(function () { | ||
| + | 87 bannerNow = bannerNow + 1; | ||
| + | 88 if (bannerNow > oMove.getElementsByTagName("img").length) bannerNow = 1; | ||
| + | 89 StartMove(bannerNow); | ||
| + | 90 }, 2000); | ||
| + | 91 } | ||
| + | 92 | ||
| + | 93 //停止自动播放功能 | ||
| + | 94 function StopAutoMove() { | ||
| + | 95 window.clearInterval(timer2); | ||
| + | 96 } | ||
| + | 97 | ||
| + | 98 </script> | ||
| + | |||
| + | |||
| + | 转载于:https://www.cnblogs.com/xinchenhui/p/8092846.html | ||
| + | |||
| + | |||
https://blog.csdn.net/weixin_34088583/article/details/94541693 | https://blog.csdn.net/weixin_34088583/article/details/94541693 | ||
2019年12月7日 (六) 11:39的版本
weixin_34088583
2017-12-23 阅读数:4
关注 CSS部分:
1 CSS:
2 <style type="text/css">
3 #banner {
4 position: relative;
5 width: 500px;
6 height: 300px;
7 margin: 0 auto;
8 border: 1px solid black;
9 overflow: hidden;
10 } 11 12 #banner_move { 13 position: relative; 14 top: 0px; 15 left: 0px; 16 height: 300px; 17 width: 5000px; 18 background-color: #eee; 19 } 20 21 #banner_move img { 22 width: 500px; 23 height: 300px; 24 float: left; 25 } 26 27 #banner_btnleft { 28 position: absolute; 29 left: 0px; 30 top: 50%; 31 margin-top: -40px; 32 width: 50px; 33 height: 80px; 34 background-color: rgba(0,0,0,0.4); 35 z-index: 99999; 36 text-align: center; 37 line-height: 80px; 38 font-size: 40px; 39 font-weight: bold; 40 color: #fff; 41 cursor: pointer; 42 display: none; 43 } 44 45 #banner_btnright { 46 position: absolute; 47 right: 0px; 48 top: 50%; 49 margin-top: -40px; 50 width: 50px; 51 height: 80px; 52 background-color: rgba(0,0,0,0.4); 53 z-index: 99999; 54 text-align: center; 55 line-height: 80px; 56 font-size: 40px; 57 font-weight: bold; 58 color: #fff; 59 cursor: pointer; 60 display: none; 61 } 62 63 #banner_btns { 64 position: absolute; 65 bottom: 10px; 66 height: 21px; 67 background-color: rgba(0,0,0,0.7); 68 border-radius: 15px; 69 } 70 71 .banner_btns_item { 72 width: 13px; 73 height: 13px; 74 background-color: #fff; 75 border-radius: 20px; 76 float: left; 77 margin: 4px; 78 } 79 </style>
HTML部分:
JS部分:
1 <script type="text/javascript">
2 var timer1;
3 var timer2;
4 var bannerNow = 1;
5 var bannerSpeed = 10;
6 var oMove = document.getElementById('banner_move');
7 var oLeft = document.getElementById("banner_btnleft");
8 var oRight = document.getElementById("banner_btnright");
9 var oBanner = document.getElementById('banner');
10 var aa = document.getElementById('aaa'); 11 12 oLeft.onclick = function () { 13 bannerNow -= 1; 14 if (bannerNow < 1) bannerNow = oMove.getElementsByTagName("img").length; 15 StartMove(bannerNow); 16 } 17 18 oRight.onclick = function () { 19 bannerNow += 1; 20 if (bannerNow > oMove.getElementsByTagName("img").length) bannerNow = 1; 21 StartMove(bannerNow); 22 } 23 24 oBanner.onmouseover = function () { 25 StopAutoMove(); 26 oLeft.style.display = 'block'; 27 oRight.style.display = 'block'; 28 } 29 30 oBanner.onmouseout = function () { 31 AutoMove(); 32 oLeft.style.display = ; 33 oRight.style.display = ; 34 } 35 36 AutoMove(); 37 38 for (var i = 0; i < oBanner.getElementsByTagName('img').length; i++) {
39 if (i == 0) document.getElementById("banner_btns").innerHTML += ''; 40 else document.getElementById("banner_btns").innerHTML += '';41 } 42 document.getElementById("banner_btns").style.left = "50%"; 43 document.getElementById("banner_btns").style.marginLeft = '-' + (document.getElementById("banner_btns").offsetWidth / 2) + 'px'; 44 45 var oBbtns = document.getElementsByClassName('banner_btns_item'); 46 for (var i = 0; i < oBbtns.length; i++) { 47 oBbtns[i].index = i + 1; 48 oBbtns[i].onclick = function () { 49 bannerNow = this.index; 50 StartMove(bannerNow); 51 } 52 } 53 54 55 //轮播方法,参数为你要看的页数 56 function StartMove(ind) { 57 window.clearInterval(timer1); //不管有没有启动定时器,都清空一下,为了保证同时只存在一个定时工作 58 timer1 = window.setInterval(function () { 59 var finish = (ind - 1) * -500; //计算目标位置 60 61 var btns = document.getElementsByClassName('banner_btns_item'); 62 for (var i = 0; i < btns.length; i++) { 63 btns[i].style.backgroundColor = ; 64 } 65 btns[ind - 1].style.backgroundColor = 'red'; 66 67 //计算速度,实现缓冲 68 bannerSpeed = Math.ceil(Math.abs((Math.abs(finish) - Math.abs(oMove.offsetLeft)) / 10)); 69 70 //判断是否结束或是移动方向 71 if (oMove.offsetLeft == finish) { //结束,停掉定时器 72 window.clearInterval(timer1); 73 } 74 else { //未结束,继续移动 75 if (oMove.offsetLeft > finish) //判断是否向右走 76 oMove.style.left = oMove.offsetLeft - bannerSpeed + 'px'; 77 else //判断是否向左走 78 oMove.style.left = oMove.offsetLeft + bannerSpeed + 'px'; 79 } 80 }, 20); 81 } 82 83 //开启自动播放功能 84 function AutoMove() { 85 window.clearInterval(timer2); 86 timer2 = window.setInterval(function () { 87 bannerNow = bannerNow + 1; 88 if (bannerNow > oMove.getElementsByTagName("img").length) bannerNow = 1; 89 StartMove(bannerNow); 90 }, 2000); 91 } 92 93 //停止自动播放功能 94 function StopAutoMove() { 95 window.clearInterval(timer2); 96 } 97 98 </script>
转载于:https://www.cnblogs.com/xinchenhui/p/8092846.html
https://blog.csdn.net/weixin_34088583/article/details/94541693