第65天:仿网易轮播图

简介: 仿网易轮播图1、HTML部分 1 DOCTYPE html> 2 3 4 5 仿网易轮播图 6 7 8 9 10 11 12 13 14 ...

仿网易轮播图

1、HTML部分

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>仿网易轮播图</title>
 6     <link rel="stylesheet" href="css/css.css">
 7     <script src="js/slider.js" type="text/javascript"></script>
 8     <script src="js/animate.js" type="text/javascript"></script>
 9 </head>
10 <body>
11     <div class="w-slider" id="js_slider">
12         <div class="slider" >
13             <div class="slider-main" id="slider_main_block">
14                 <div class="slider-main-img"><a href="#"><img src="images/1.jpg" alt=""></a></div>
15                 <div class="slider-main-img"><a href="#"><img src="images/2.jpg" alt=""></a></div>
16                 <div class="slider-main-img"><a href="#"><img src="images/3.jpg" alt=""></a></div>
17                 <div class="slider-main-img"><a href="#"><img src="images/4.jpg" alt=""></a></div>
18                 <div class="slider-main-img"><a href="#"><img src="images/5.jpg" alt=""></a></div>
19                 <div class="slider-main-img"><a href="#"><img src="images/6.jpg" alt=""></a></div>
20             </div>
21         </div>
22         <div class="slider-ctrl" id="slider_ctrl">
23             <span class="slider-prev"></span>
24             <span class="slider-next"></span>
25         </div>
26     </div>
27 </body>
28 </html>

2、CSS部分

 1 *{
 2     margin: 0;
 3     padding: 0;
 4 }
 5 .w-slider{
 6     width: 310px;
 7     height: 265px;
 8     margin:100px auto;
 9     background-color: red;
10     position: relative;
11     overflow: hidden;
12 }
13 .slider{
14     width: 310px;
15     height: 220px;
16     background-color: yellow;
17 }
18 .slider-main{
19     width: 620px;
20     height: 220px;
21 
22 }
23 .slider-main-img{
24     position: absolute;
25     top:0;
26     left:0;
27 }
28 
29 .slider-ctrl{
30     text-align: center;
31     padding-top: 5px;
32 }
33 .slider-con{
34     width: 24px;
35     height: 20px;
36     display: inline-block;
37     background-color: blue;
38     background: url(../images/icon.png) no-repeat -24px -782px;
39     margin:0 5px;
40     cursor: pointer;
41     text-indent: -20em;
42     overflow: hidden;
43 }
44 .current{
45     background-position: -24px -762px;
46 }
47 .slider-prev,.slider-next{
48     position: absolute;
49     top:50%;
50     margin-top: -35px;
51     background: url(../images/icon.png) no-repeat 6px top;
52     width: 30px;
53     height: 35px;
54     opacity:0.8;
55     cursor: pointer;
56 }
57 .slider-prev{
58     left:0;
59 }
60 .slider-next{
61     right:0;
62     background-position: -6px -44px;
63 }

3、js部分

 1 /**
 2  * Created by Administrator on 2017/10/25.
 3  */
 4 window.onload=function(){
 5     //获取元素
 6     function $(id) {
 7         return document.getElementById(id);
 8     }
 9     var js_slider = $("js_slider");//获取最大盒子
10     var slider_main_block = $("slider_main_block");///图片的父亲
11     var imgs = slider_main_block.children;//获得所有的图片组
12     var slider_ctrl=$("slider_ctrl");//获得控制的父盒子
13 
14     //操作元素
15     for(var i=0;i<imgs.length;i++){
16         var span=document.createElement("span");//创建span
17         span.className="slider-con";//添加类名
18         span.innerHTML=imgs.length-i;//实现倒叙插入
19         slider_ctrl.insertBefore(span,slider_ctrl.children[1]);//在父亲倒数二个孩子前插入
20 
21     }
22     var spans=slider_ctrl.children;
23     spans[1].setAttribute("class","slider-con current");//两个类名
24 
25     var scrollWidth=js_slider.clientWidth;//得到大盒子宽度 动画移动的距离
26     for(var i=1;i<imgs.length;i++){//除了当前的,从1开始
27         imgs[i].style.left=scrollWidth+"px";//除了当前,其他的走到scrollWidth位置
28     }
29 
30     //三个按钮动画开始
31     var iNow=0;//控制播放张数
32     for(var k in spans){//遍历三个按钮
33         spans[k].onclick=function(){
34             if(this.className=="slider-prev"){
35                 //点击左侧按钮时,当前走到右边,下张快速走到左侧,然后再到中间
36                 animate(imgs[iNow],{left:scrollWidth});//当前图片慢慢走到scrollWidth位置
37                 --iNow<0?iNow=imgs.length-1:iNow;//先加加再判断后执行
38                 imgs[iNow].style.left=-scrollWidth+"px";//快速走到左侧
39                 animate(imgs[iNow],{left:0});//下一张走到left:0的位置
40                 setSquare();
41             }else if(this.className=="slider-next"){//右侧按钮开始
42                 //点击右侧按钮时,当前走到左边,下张快速走到右侧,然后再到中间
43                 animate(imgs[iNow],{left:-scrollWidth});//当前图片慢慢走到-scrollWidth位置
44                 ++iNow>imgs.length-1?iNow=0:iNow;//先加加再判断后执行
45                 imgs[iNow].style.left=scrollWidth+"px";//快速走到右侧
46                 animate(imgs[iNow],{left:0});//下一张走到left:0的位置
47                 setSquare();
48 
49             }else{
50                 //小span点开始
51                var that=this.innerHTML-1;
52                 if(that>iNow){//相当于右侧按钮
53                     animate(imgs[iNow],{left:-scrollWidth});//当前的走到左边
54                     imgs[that].style.left=scrollWidth+"px";//点击的走到右边
55                 }else if(that<iNow){//相当于左侧按钮
56                     animate(imgs[iNow],{left:scrollWidth});//当前的走到右边
57                     imgs[that].style.left=-scrollWidth+"px";//点击的走到左边
58 
59                 }
60                 iNow=that;//点击的给当前
61                 animate(imgs[iNow],{left:0});//点击的走到中间
62                 setSquare();//调用函数
63             }
64         }
65 
66         //控制播放按钮的的函数
67         function setSquare(){
68             for(var i=1;i<spans.length-1;i++){//只遍历1-6的span
69                 spans[i].className="slider-con";//清除所有的current
70             }
71             spans[iNow+1].className="slider-con current";//当前的 从1开始
72         }
73 
74     }
75 
76 
}

运行效果:

 

相关文章
|
前端开发 JavaScript
HTML+CSS+JS仿京东购物车页面动态效果
HTML+CSS+JS仿京东购物车页面动态效果
174 0
|
11月前
|
前端开发
移动端开发——京东首页制作(流式布局)
移动端开发——京东首页制作(流式布局)
|
搜索推荐 小程序 数据挖掘
仿今日头条实时新闻微信小程序项目源码
仿今日头条实时新闻微信小程序项目源码
397 0
仿今日头条实时新闻微信小程序项目源码
|
存储 容器
仿百度福袋红包界面
仿百度福袋红包界面
92 0
仿百度福袋红包界面
|
移动开发 Android开发 iOS开发
html5直播实例|h5仿陌陌、仿火山小视频
这段时间直播、小视频比较火,于是空余时间利用h5开发的仿陌陌、抖音、火山小视频项目,使用到了html5+css3+jQuery+iscroll+swiper+wlsPop+wcMsgTips等技术架构开发,界面功能效果挺不错哒!!!                
4594 0
|
Android开发
仿抖音底部导航(二)
继续实现仿抖音底部导航 今天要实现效果如下图 实现效果 首先在原基础的布局中加入一个ImageView 这里附上刷新的图片素材 image 然后在原代码中进行修改以实现导航的动画及刷新功能 1.
1809 0
|
XML Android开发 数据格式
仿抖音底部导航效果(一)
最终效果预览 最终效果 这次实现的是第一步效果 本次效果 原理解析:通过对控件添加动画来实现仿抖音底部导航的效果 一.首先编写布局文件(这里是用TextView作为底部的指示横线) 二.
2068 0
|
Web App开发 JavaScript 前端开发
第21天:京东页面轮播图
一、轮播图小圆点 HTML代码1 2 1 3 2 4 3 5 4 6 5 7 6 8 CSS代码 1 .
1227 0