JS+css3焦点轮播图PC端

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>js原生web轮播图</title>
  6     <style>
  7         *{
  8             margin:0;
  9             padding:0;
 10             list-style: none;
 11             -moz-user-select: none;/*文字不可选择*/
 12             -khtml-user-select: none;/*文字不可选择*/
 13             user-select: none;/*文字不可选择*/
 14         }
 15         #container{
 16             width: 600px;
 17             height: 400px;
 18             position: relative;
 19             overflow: hidden;
 20         }
 21         #slider{
 22             margin-left:-600px;
 23             width: 4200px;
 24             height: 400px;
 25         }
 26         #slider li{
 27             width: 600px;
 28             height: 400px;
 29             float: left;
 30         }
 31         img{
 32             width: 600px;
 33             height: 400px;
 34         }
 35         #prev{
 36             position: absolute;
 37             top:40%;
 38             left:0px;
 39             width: 50px;
 40             height: 50px;
 41             background-color: #eee;
 42             z-index: 999;
 43             line-height:50px;
 44             text-align: center;
 45         }
 46         #prev:hover{
 47             cursor: pointer;
 48         }
 49         #next{
 50             position: absolute;
 51             top:40%;
 52             right:0px;
 53             width: 50px;
 54             height: 50px;
 55             background-color: #eee;
 56             z-index: 999;
 57             line-height:50px;
 58             text-align: center;
 59         }
 60         #next:hover{
 61             cursor: pointer;
 62         }
 63         #dotul{
 64             position: absolute;
 65             bottom:100px;
 66             left:38%;
 67             width: 150px;
 68             height: 20px;
 69         }
 70         .dot{
 71             background-color: green;
 72         }
 73         #dotul li{
 74             margin-left:10px;
 75             width: 20px;
 76             height: 20px;
 77             float: left;
 78             border-radius: 10px;
 79             z-index: 999;
 80         }
 81         li{
 82             background-color: red;
 83         }
 84     </style>
 85 </head>
 86 <body>
 87     <div id="container">
 88         <ul id="slider">
 89             <li><img src="5.jpg" alt=""></li>
 90             <li><img src="1.jpg" alt=""></li>
 91             <li><img src="2.jpg" alt=""></li>
 92             <li><img src="3.jpg" alt=""></li>
 93             <li><img src="4.jpg" alt=""></li>
 94             <li><img src="5.jpg" alt=""></li>
 95             <li><img src="1.jpg" alt=""></li>
 96         </ul>
 97         <ul id="buttons">
 98             <li id="prev">上一张</li>
 99             <li id="next">下一张</li>
100         </ul>
101         <div id="dots">
102             <ul id="dotul">
103                 <li index="1" class="dot"></li>
104                 <li index="2"></li>
105                 <li index="3"></li>
106                 <li index="4"></li>
107                 <li index="5"></li>
108             </ul>
109     </div>
110     </div>
111
112     <script>
113         var container = document.getElementById(‘container‘);
114         var slider = document.getElementById(‘slider‘);
115         var prev=document.getElementById(‘prev‘);
116         var next=document.getElementById(‘next‘);
117         var dots=document.getElementById(‘dotul‘).getElementsByTagName(‘li‘);
118         var index=1;
119         var timer;
120         function dotsInit(){
121             for (var i = 0; i < dots.length; i++) {
122                 console.log(dots[i]);
123                 dots[i].onclick=function(){
124                     var $index=parseInt(this.getAttribute("index"));
125                     slider.style.marginLeft=($index)*(-600)+"px";
126                     index=$index;
127                 }
128             }
129         }
130         dotsInit();
131         function animate(option){
132             var sliderLeft=slider.offsetLeft;
133             slider.style.marginLeft=parseInt(sliderLeft)+option+‘px‘;
134         }
135         function dotsTurn(){
136             for(var i=0;i<dots.length;i++){
137                 if(dots[i].getAttribute(‘index‘)==index){
138                     dots[i].className=‘dot‘
139                 }else{
140                     dots[i].className=‘‘
141                 }
142             }
143         }
144         prev.onclick=function(){
145             if(slider.offsetLeft % 600 !=0){
146                 return;
147             }
148             slider.style.transition="0.5s";
149             animate(600);
150             (index==1)?(index=5):index--;
151         }
152         next.onclick=function(){
153             if(slider.offsetLeft % 600 !=0){
154                 return;
155             }
156             slider.style.transition="0.5s";
157             animate(-600);
158             (index==5)?(index=1):index++;
159         }
160         slider.addEventListener("transitionend",function(){
161             if(slider.offsetLeft==-3600){
162                 slider.style.transition="0s";
163                 slider.style.marginLeft="-600px";
164             }
165             if(slider.offsetLeft==0){
166                 slider.style.transition="0s";
167                 slider.style.marginLeft="-3000px";
168             }
169             dotsTurn();
170         });
171         function init(){
172             slider.style.transition="0.5s";
173             timer=setInterval(next.onclick,5000);
174         }
175         init();
176         slider.addEventListener(‘mouseenter‘,function(){
177             clearInterval(timer);
178         })
179         slider.addEventListener(‘mouseout‘,init)
180     </script>
181 </body>
182 </html>
时间: 2024-10-12 03:17:43

JS+css3焦点轮播图PC端的相关文章

移动端能用手指滑动的焦点轮播图

要使用到一个库--swipe.js,专门用来制作能够用手指滑动的焦点轮播图的.在网上下载swipe.js包,下载链接:https://codeload.github.com/thebird/Swipe/zip/2.0.0,下载后解压,文件夹名字为:swipe-master. (1)添加视口约束: (2)引入js包 (3)注意事项: // 布局, 在body标签里面,添加一个父盒子,这个父盒子可以任意取id(eg:<div id="jiaodiantu">).里面必须内嵌一个

关于焦点轮播图的总结

目前来讲,在各大网站都会使用到焦点轮播图,因为它占用地方少,交互性好,是前端设计必须要掌握的技能之一. 原理:使用三层嵌套,最里层装载图片,图片需要浮动.最里层设置相对定位.然后再使用JavaScript设置一个定时器,每过一段时间便让最里层的块的left值改变. 而第二层则需要设置overflow:hidden:这个属性,否则将会导致这个层被子层撑大.不美观. 此图便为实现效果图. 下面先讲一讲如何布局. 首先布局分为三大块,一块为inner,包裹住所有的图片:一块为outer,决定展示的窗口

JS学习笔记--轮播图效果

希望通过自己的学习收获哪怕收获一点点,进步一点点都是值得的,加油吧!!! 本章知识点:index this for if else 下边我分享下通过老师教的方式写的轮播图,基础知识实现: 1.css代码 <style> ul, ol { padding:0; margin:0; } li { list-style:none; } #box { width:600px; height:350px; border:10px solid #ccc; margin:0 auto; position:r

焦点轮播图效果实现

焦点轮播图相对前面讲的逐帧轮播图实现多了两个功能,1.图片轮播可以手动滚动(新增左右箭头),这里重点是实现向左滚动的无缝连接.2.多了下方小圆点,指示图片播放位置,并可以点击小圆点跳转. 那么如何实现呢? 1.无缝连接: 前面逐帧轮播图向右滚动的无缝连接实现,是将最后一张图片负值一个副本放在第一个位置.同理,实现向左无缝滚动,只需将第一张图片负值一个副本放置在最后的位置即可.形成 5  1  2 3 4 5 1这样的图片排序.同样将7张图片放在一个div下,轮播时播放变换div位置即可. HTM

原生JS实现简易轮播图

原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = function() { var tab = 0; var loop_imgs = new Array("img/l1.jpg", "img/l2.jpg", "img/l3.jpg", "img/l4.jpg", "img/l5

移动端原生js,css3实现轮播图

一.功能需求 1.自动播放2.滑动切换3.点击切换 二.思路分析 html代码: <div class="container"> <ul class="list clearfix"> <li class="item fl item5">图5</li> <li class="item fl item1">图1</li> <li class="

封装一个简单的原生js焦点轮播图插件

轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放.本篇文章的主要目的是分享封装插件的思路. 轮播图的我一开始是写成非插件形式实现的效果,后来才改成了封装成插件的形式. 首先要明白轮播图的实现原理和基本布局,大概就是外面有一个容器包裹着(通常是div),容器设置宽高,以及overflow为hidden,超出宽高部分隐藏, 容器里面又包含着另一个容器,包裹着所有的图片,宽为所有图片的总宽度,ul的position为absolute,通过改变ul的left

photoSlider-原生js移动开发轮播图、相册滑动插件

详细内容请点击 在线预览   立即下载 使用方法: 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css" href="css/photoSlider.min.css" /><script src="js/photoSlider.min.js" type="text/javascript" charset="utf-8&q

photoSlider-html5原生js移动开发轮播图-相册滑动插件

简单的移动端图片滑动切换浏览插件 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css" href="css/photoSlider.min.css" /> <script src="js/photoSlider.min.js" type="text/javascript" charset="utf-8">