Banner 切换

在线项目 :  Banner 切换

时间 : 2个小时 (15:00 - 17:00)
满分 : 100分
---------------------------------------------------
工具 : sublime , webstorm , 记事本 , hbuilder
---------------------------------------------------
技术 :  使用jq  html5 完成
---------------------------------------------------
禁止 :  查看以往的案例去做 , 询问旁边的小伙伴 , 教做

允许 :  查看手册
---------------------------------------------------

文件    /image  /css  /js  10
---------------------------------------------------
布局 :  
    图片布局 10
 
    导航点    10
    
    左右翻页按钮 10
---------------------------------------------------
效果 :
    动态生成导航点 10    
 
    实现定时切换图片 10

鼠标悬停时暂停计时器松开后继续切换 10

实现导航点切换  10

实现左右切换  10

实现定时无缝切换和左右按钮无缝切换 10


---------------------------------------------------

html结构部分

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title>考试内容</title>
 6     <link rel="stylesheet" href="css/base.css">
 7     <script SRC="js/jquery-1.9.1.js"></script>
 8     <script src="js/js.js"></script>
 9 </head>
10 <body>
11     <div class="container" >
12         <ul id="silder">
13             <li></li>
14             <li></li>
15             <li></li>
16             <li></li>
17             <li></li>
18             <!--<li>6</li>-->
19         </ul>
20         <a href="javascript:;" class="fl" id="lBtn">&lt;</a>
21         <a href="javascript:;" class="fr" id="rBtn">&gt;</a>
22         <div id="circle">
23
24         </div>
25     </div>
26     <!--动态生成导航点-->
27     <script type="text/javascript">
28         var _ul=document.getElementById(‘silder‘);
29         var Ali=_ul.children;
30         var circleBox=document.getElementById(‘circle‘);
31         for(var i=0;i<Ali.length;i++){
32             var newCircle=document.createElement(‘span‘);
33             circleBox.appendChild(newCircle);
34         }
35         var Aspan=circleBox.children;
36         Aspan[0].classList.add(‘active‘);
37     </script>
38 </body>
39 </html>css样式部分
*{
    padding: 0;
    margin: 0;
}
ul{
    list-style: none;
}
a{
    text-decoration: none;
}
.fl{
    float: left;
}
.fr{
    float: right;
}
/*------------------*/

.container{
    width: 900px;
    height: 500px;
    overflow: hidden;
    margin: 45px auto;
    border: 1px solid #000;
    position: relative;
}
.container ul{
    width: 1000%;
    height: 500px;
    position: absolute;
    left: 0;
    top: 0;
}
.container ul li{
    float: left;
    width: 900px;
    height: 500px;
    background-size: cover;
}
.container ul li:nth-child(1){
    background-image: url(../image/1.jpg);
}
.container ul li:nth-child(2){
    background-image: url(../image/2.jpg);
}
.container ul li:nth-child(3){
    background-image: url(../image/3.jpg);
}
.container ul li:nth-child(4){
    background-image: url(../image/4.jpg);
}
.container ul li:nth-child(5){
    background-image: url(../image/5.jpg);
}
.container ul li:nth-child(6){
    background-image: url(../image/1.jpg);
}
.container  a {
    display: block;
    width: 20px;
    height: 100px;
    border: 1px solid #ccc;
    font: 400 30px/100px ‘microsoft YaHei‘;
    color: #f5f5f5;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.container  a:nth-child(2){
    left: 0;
}
.container  a:nth-child(3){
    right: 0;
}
.container #circle{
    position: absolute;
    left: 50%;
    bottom:0;
    transform: translateX(-50%);
}
.container #circle span{
    float: left;
    width: 40px;
    height: 10px;
    border-radius:5px;
    border: 1px solid #000;
    margin: 5px;
    cursor: pointer;
}
.active {
    background-color: cornsilk;
}

js部分
  1 /**
  2  * Created by ASUS on 2016/5/30.
  3  */
  4 window.onload=function(){
  5     var container=document.getElementsByTagName(‘div‘)[0];
  6     console.log(container.offsetWidth);
  7     var ul=document.getElementById(‘silder‘);
  8     // var ulWidth=ul.offsetWidth;
  9     var Ali=ul.children;
 10     var liWidth=Ali[0].offsetWidth;
 11     var circlebox=document.getElementById(‘circle‘);
 12     var  Aspan=circlebox.children;
 13     /*导航点切换*/
 14     container.onmouseenter=function () {
 15         clearInterval(timer)
 16     }
 17     container.onmouseleave=function () {
 18
 19         timer =setInterval(function () {
 20             if(num<Ali.length){
 21                 changeImg(ul,-num*liWidth);
 22                 changes(num);
 23                 num++;
 24
 25                 //  console.log(num-1);
 26                 // console.log(num);
 27             }else{
 28                 num=0;
 29             }
 30         },1000);
 31     }
 32
 33     function changes(num){
 34         // console.log(Aspan.length);
 35         for(var k=0;k<Aspan.length;k++){
 36             Aspan[k].classList.remove(‘active‘);
 37         }
 38         Aspan[num].classList.add(‘active‘);
 39     }
 40     //changes(3);
 41     var timer=null;
 42     /*图片轮播*/
 43     function changeImg(obj,target) {
 44         //clearInterval(timer)
 45         var speed=obj.offsetLeft>target?-15:15;
 46         // obj.style.left=target+speed+"px";
 47         obj.style.left=target+"px";
 48         var res=target-obj.offsetLeft;
 49         if(Math.abs(res)<5){
 50             obj.style.left=target+"px";
 51         }
 52     }
 53     /*定时器*/
 54     var num=0;
 55     var timer =setInterval(function () {
 56         if(num<Ali.length){
 57             num++;
 58           //  console.log(num-1);
 59            // console.log(num);
 60         }else{
 61             num=0;
 62         }
 63         changes(num);
 64         changeImg(ul,-num*liWidth);
 65
 66     },1000);
 67     /*鼠标悬停*/
 68     function mouseChange(){
 69         console.log(Aspan.length);
 70         for(var i = 0;i< Aspan.length;i++){
 71             Aspan[i].index=i;
 72             Aspan[i].onmouseover=function (){
 73                 console.log(Aspan.length);
 74                 for(var j=0;j<Aspan.length;j++){
 75                     Aspan[j].classList.remove(‘active‘);
 76                 }
 77                 Aspan[this.index].classList.add(‘active‘);
 78                 changeImg(ul,-this.index*liWidth);
 79             }
 80
 81         }
 82     }
 83     mouseChange();
 84     /*左右切换*/
 85     var leftBnt=document.getElementById(‘lBtn‘);
 86     var rightBtn=document.getElementById(‘rBtn‘);
 87     function btnchange() {
 88         var number=5;
 89         leftBnt.onmousedown=function () {
 90             if(number>0){
 91                 number--;
 92                 console.log(number);
 93                 //clearInterval(timer);
 94                 ul.style.left=-number*liWidth+"px";
 95             }
 96            else{
 97                 number=4;
 98                 ul.style.left=-number*liWidth+"px";
 99             }
100             for(var j=0;j<Aspan.length;j++){
101                 Aspan[j].classList.remove(‘active‘);
102             }
103             Aspan[number].classList.add(‘active‘);
104         }
105
106         rightBtn.onmousedown=function () {
107           if(number>3){
108                 number=0;
109                 ul.style.left=number*liWidth+"px";
110             }
111             else{
112               number++;
113               console.log(number);
114               ul.style.left=-number*liWidth+"px";
115           }
116             for(var j=0;j<Aspan.length;j++){
117                 Aspan[j].classList.remove(‘active‘);
118             }
119             Aspan[number].classList.add(‘active‘);
120         }
121     }
122     btnchange();
123 }<--图片-->




				
时间: 2024-10-13 00:50:29

Banner 切换的相关文章

基于jquery仿天猫分类导航banner切换

分享一款基于jquery天猫分类导航banner切换.这是一款仿最新天猫商品分类导航控制banner图片切换代码.效果图如下: 在线预览   源码下载 部分代码: <div class="yHeader"> <div class="yNavIndex"> <div class="pullDown"> <h2 class="pullDownTitle"> 所有商品分类 </h

jQuery banner切换插件

今天学写了一个基于jQuery焦点图切换插件,有不对的地方还请多多指教,不多说下面是代码: 1.引jQuery库 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 2.Html部分 <!--Focus Html--> <div class="s_focus"> <ul class="f_img"> &l

以用户为中心的前端设计案例剖析

WEB前端设计的最终目标是打造用户喜爱的产品,属于产品设计的范畴.所以一切设计要以用户为出发点,追求最佳的用户体验. 一.banner的设计 在WEB项目设计中,我们经常会有banner设计需求,一般而言首屏Banner及其相关区域也是整个网页设计中非常重要的部分. 优化前: 优化后: 优化前: 1.优化前网页首屏图片自动切换交互方式之外,用户可以点击圆点按钮手动切换图片.但考虑到图片本身的展示空间和效果,圆点按钮设计的比较小,造成用户点击该按钮时不方便. 2.banner切换图片时,会存在图片

jquery常用代码--(二)

3.进度条       1.横向进度条带固定百分比               function SetProgress(progress) {                                 if (progress) {                              $(".inner").css("width", String(progress) + "%"); //控制#loading div宽度       

jquery常用代码--(一)

在工作中,常用的特效,其实不是很多.主要分为以下几大类: 1.常见Tab切换                  2.有关输入框 input的简单交互                  3.进度条                 4. Banner切换                 5.可拖拽弹出层                 6.文字超出则省略且显示为点点                 7.内容区内部右边3D云标签 1.常见Tab切换         $(function(){     

CSS3、SVG、Canvas、WebGL动画精选整理

一.CSS3动画 名称 用途 链接 阴影波纹特效 1.元素hover效果 2.突出表现效果 http://www.jq22.com/code80 横板导航菜单动画 导航菜单 http://www.jq22.com/code181 横板导航菜单动画2 导航菜单 http://www.jq22.com/code195 竖板导航菜单动画 导航菜单 http://www.jq22.com/code480 圆形导航菜单动画 导航菜单 http://www.jq22.com/code816 环形导航菜单动画

10款炫酷的jQuery和css3动画插件及源码

1.jQuery超酷平面时钟特效插件 这是一个非常具有创意的jQuery时钟插件,它不像其他的时钟插件一样是圆盘的或者是数字的,它是一个平面时钟,日期和时分秒的指针都是在平面上移动计时的,尽管这款jQuery平面时钟插件不能广泛应用,但是创意是绝对可以肯定的. 在线演示 源码下载 2.4款基于jquery的列表图标动画切换特效 网页中列表图标随处可见,特别是移动网页上,基本上的导航都采用了列表图标.今天给大家分享4款基于juqery的列表图标和关闭图标的动画切换特效. 在线演示 源码下载 3.随

如何调用phpcms v9中的广告中的具体数据

phpcms v9的广告模块具有很大的灵活性,使用默认的那些模板已经可以得到一些很实用的广告效果,但是如果是自制的类似jQuery切换广告之类的情况,系统自带的调用方法就无法满足要求了,那么这种时候就需要调用广告中的具体数据,如:直接调用图片列表中的图片地址和链接.其实方法很简单,当广告数据表为默认时,调用代码: {pc:get sql="SELECT setting FROM v9_poster WHERE spaceid = 12 AND type='images' AND disabled

jquery简单的图片切换效果,支持pc端、移动端的banner图片切换开发

详细内容请点击 无意中看见了两年前写的一个图片切换,那会儿刚刚学习网页制作,可以说是我的第一个处女座的jquery图片切换效果.无聊之余对它的宽度稍稍做了一下修改,变成了支持pc端.手机端全屏的banner图片切换效果. 写法很简单,网页初学者们或者wenbapp初学者们可以拿去学习学习,也可以在这基础上加上手机的图片滑动切换效果.废话不多说,下面说说这个简单的图片切换的效果吧! 首先以下是图片切换的效果图:   图片切换效果html内容: <div class="tyna2"&