为了账号安全,请及时绑定邮箱和手机立即绑定

js 实现图片翻页问题!

js 实现图片翻页问题!

慕九州7009252 2016-12-12 15:41:59
<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Title</title>     <style>  * {             margin: 0;             padding: 0;         }         #box {             width: 700px;             height: 300px;             border: 1px solid #ccc;             margin: 20px auto;             position: relative;             overflow: hidden;         }         /* .box:hover .right-a,.box:hover .left-a{              display: block;          }*/  #box #title {             height: 30px;             width: 100%;             background: #eee;             position: relative;         }         #box #title a {             text-decoration: none;             width: 20%;             height: 100%;             line-height: 30px;             font-size: 15px;             color: #009797;             float: left;             text-align: center;             position: relative;              }  #box #content {             width: 700px;             height: 270px;             position: relative;         }         #box #content #main{             width:3500px;             height: 270px;             position: absolute;             left:0;             top:0;         }         #box #content #main div {             width: 700px;             height: 270px;             float: left;             color: white;             font-size: 50px;             text-align: center;             line-height: 270px;         }         #box #left-a {             height: 70px;             width: 50px;             background: rgba(0, 0, 0, 0.5);             position: absolute;             left: 0;             top: 45%;             color: white;             font-size: 20px;             line-height: 70px;             text-align: center;             cursor: pointer;             display: none;         }         #box #right-a {             height: 70px;             width: 50px;             background: rgba(0, 0, 0, 0.5);             position: absolute;             top: 45%;             right: 0;             color: white;             font-size: 20px;             line-height: 70px;             text-align: center;             cursor: pointer;             display: none;         }         #box #content #main #color1 {             background: #ffb12f;         }         #box #content #main #color2 {             background: #00C378;         }         #box #content #main #color3 {             background: #26B2E3;         }         #box #content #main #color4 {             background: #E84C3D;         }         #box #content #main #color5 {             background: #F831FD;         }     </style> </head> <body> <div id="box">     <div id="title">         <a href="#">1</a>         <a href="#">2</a>         <a href="#">3</a>         <a href="#">4</a>         <a href="#">5</a>  <!--<div id="float"></div>-->  </div>     <div id="content">         <div id="main">             <div id="color1">page1</div>             <div id="color2">page2</div>             <div id="color3">page3</div>             <div id="color4">page4</div>             <div id="color5">page5</div>         </div>     </div>     <div id="left-a">&lt</div>     <div id="right-a">&gt</div> </div> </body> </html> 下面是js的内容window.onload = function () {     var box = document.getElementById('box');     var oTitle = document.getElementById('title');     var links = oTitle.getElementsByTagName('a');     var float = document.getElementById('float');     var oContent = document.getElementById('content');     //var divs = oContent.getElementsByTagName('div');     var oLeft = document.getElementById('left-a');     var oRight = document.getElementById('right-a');     var oMain = document.getElementById('main');     var timer = null;     var num1 = 0;     var num2 = 0;     box.onmouseover = function () {         oLeft.style.display = 'block';         oRight.style.display = 'block';     }     box.onmouseout = function () {         oLeft.style.display = 'none';         oRight.style.display = 'none';     }     for(var i=0;i<links.length;i++){         links[i].index = i;         links[i].onclick = function () {             for(var j=0;j<links.length;j++){                 links[j].style.background = 'none';             }             this.style.background = 'red';             startMove(oMain,{left:-this.index*700})         }     } } function startMove(obj,json,fn){     var flag = true;//假设所有目标都到达目标值     clearInterval(obj.timer);     obj.timer = setInterval(function(){         for(var attr in json){             //1.取当前的值             var icur = 0;             if(attr =='opacity'){                 icur = Math.round(parseFloat(getStyle(obj, attr))*100);             }else{                 icur=parseInt(getStyle(obj, attr));             }             //2.算速度             var speed = (json[attr]-icur)/3;             speed = speed>0?Math.ceil(speed):Math.floor(speed);             //3.检测停止             if(icur!=json[attr]){                 flag = false;             }             if(attr=='opacity'){                 obj.style.filter = 'alpha(opacity:'+(icur+speed)+')';                 obj.style.opacity =(icur+speed)/100;             }else{                 obj.style[attr]=icur+speed+"px";             }         }         if(flag){             clearInterval(obj.timer);             if(fn){                 fun();             }         }     },30); }没做完,做到这我发现要是本来在1的时候点5中间可以看到是从234这几张图片这样过去的,我看那些用jquery做的1和5切换中间就不会这样,但是我还不会jquery,所以想请教一下大神该怎么解决这个问题啊
查看完整描述

2 回答

?
马崇瀚

TA贡献4条经验 获得超0个赞

给你个思路...

你排图片是1 2 3 4 5,

现在需要排成5 1 2 3 4 5 1,

点击的时候判断,如果点击5,并且当前在1,就会往回退,动画结束后位置弹到第二个5, 

                           如果点击1,并且当前在5,就会往前进,动画结束后位置弹到第一个1,

查看完整回答
反对 回复 2017-04-18
  • 2 回答
  • 0 关注
  • 1833 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信