温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

js怎么实现图片3D轮播效果

发布时间:2021-04-19 11:39:13 来源:亿速云 阅读:518 作者:小新 栏目:web开发

这篇文章主要介绍js怎么实现图片3D轮播效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

3D的图片轮播效果很炫,写到这里只是为了不丢代码,不为别的。

效果预览:

js怎么实现图片3D轮播效果

html代码:

<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js实现3D图片逐张轮播幻灯片</title> </head> <body> <style> ul#bcty365_nav{padding-left:50px; margin-bottom:10px; border-bottom:2px solid #ccc; overflow:hidden; _zoom:1;} ul#bcty365_nav li{float:left; display:inline; margin:10px;} ul#bcty365_nav li a{display:block;color:#000000; font-size:16px;} ul#bcty365_nav li a,#wimoban_p,#wimoban_p a{ font-family:"微软雅黑";} ul#bcty365_nav li a:hover,#wimoban_p a:hover{color:red;} </style>  <style type="text/css"> *{margin:0;padding:0;list-style-type:none;} a,img{border:0;} body{font:12px/180% Arial, Helvetica, sans-serif,"新宋体";} /* focus_Box */ #focus_Box{position:relative;width:710px;height:500px;margin:20px auto;} #focus_Box ul{position:relative;width:710px;height:500px} #focus_Box li{z-index:0;position:absolute; width:0px;background:#787878;height:0px;top:146px;cursor:pointer;left:377px;border-radius:4px;box-shadow:1px 1px 12px rgba(200, 200, 200, 1)} #focus_Box li img{width:100%;background:url(../img/3D轮播效果/loading.gif) no-repeat center 50%;height:100%;vertical-align:top} #focus_Box li p{position:absolute;left:0;bottom:0px;width:100%;height:40px;line-height:40px;background:url(images/float-bg.png) repeat;text-indent:8px;color:#fff;} #focus_Box li p span{display:inline-block;width:70%;height:40px;overflow:hidden;} #focus_Box .prev,#focus_Box .next{display:block;z-index:100;overflow:hidden;cursor:pointer;position:absolute;width:52px;height:52px;top:131px;} /*#focus_Box .prev{background:url(../img/3D轮播效果/btn.png) left bottom no-repeat;left:0px} #focus_Box .next{background:url(../img/3D轮播效果/btn.png) right bottom no-repeat;right:0px} */ #focus_Box .prev:hover{background-position:left top;} #focus_Box .next:hover{background-position:right top;} /*#focus_Box a.imgs-scroll-btn{display:block;position:absolute;z-index:110;top:7px;right:15px;width:51px;height:23px;overflow:hidden;background:url(images/share-btn.png) no-repeat;text-indent:-999px;}*/ </style> <script src="../js/3D轮播效果/ZoomPic.js"></script> <div id="focus_Box">  <span class="prev"> </span>  <span class="next"> </span>  <ul>  <li>  <a href="#" ><img width="600" height="450" src="../img/3D轮播效果/cat1.jpg" /></a>    </li>  <li>  <a href="#" ><img width="600" height="450" src="../img/3D轮播效果/cat2.jpg" /></a>    </li>  <li>  <a href="#" ><img width="600" height="450" src="../img/3D轮播效果/cat3.jpg" /></a>    </li>  <li>  <a href="#" ><img width="600" height="450" src="../img/3D轮播效果/cat4.jpg" /></a>     </li>  <li>  <a href="#" ><img width="600" height="450" src="../img/3D轮播效果/cat5.jpg" /></a>    </li>  </ul> </div> <div > </div> </body> </html>

js代码:

function ZoomPic () {  this.initialize.apply(this, arguments)  } ZoomPic.prototype =  {  initialize : function (id)  {  var _this = this;  this.wrap = typeof id === "string" ? document.getElementById(id) : id;  this.oUl = this.wrap.getElementsByTagName("ul")[0];  this.aLi = this.wrap.getElementsByTagName("li");  this.prev = this.wrap.getElementsByTagName("span")[0];  this.next = this.wrap.getElementsByTagName("span")[1];  this.timer = 1000;  this.aSort = [];  this.iCenter = 2;  this._doPrev = function () {return _this.doPrev.apply(_this)};  this._doNext = function () {return _this.doNext.apply(_this)};  this.options = [  /*{width:476, height:210, top:40, left:0, zIndex:1},  {width:426, height:250, top:20, left:50, zIndex:2},  {width:654, height:290, top:0, left:150, zIndex:3},  {width:426, height:250, top:20, left:480, zIndex:2},  {width:476, height:210, top:40, left:476, zIndex:1},*/  {width:365, height:252, top:40, left:0, zIndex:1},  {width:405, height:280, top:20, left:60, zIndex:2},  {width:445, height:308, top:0, left:130, zIndex:3},  {width:405, height:280, top:20, left:240, zIndex:2},  {width:366, height:252, top:40, left:345, zIndex:1},  ];  for (var i = 0; i < this.aLi.length; i++) this.aSort[i] = this.aLi[i];  this.aSort.unshift(this.aSort.pop());  this.setUp();  this.addEvent(this.prev, "click", this._doPrev);  this.addEvent(this.next, "click", this._doNext);  this.doImgClick();   this.timer = setInterval(function ()  {  _this.doNext()   }, 3000);   this.wrap.onmouseover = function ()  {  clearInterval(_this.timer)   };  this.wrap.onmouseout = function ()  {  _this.timer = setInterval(function ()  {  _this.doNext()   }, 3000);   }  },  doPrev : function ()  {  this.aSort.unshift(this.aSort.pop());  this.setUp()  },  doNext : function ()  {  this.aSort.push(this.aSort.shift());  this.setUp()  },  doImgClick : function ()  {  var _this = this;  for (var i = 0; i < this.aSort.length; i++)  {  this.aSort[i].onclick = function ()  {  if (this.index > _this.iCenter)  {   for (var i = 0; i < this.index - _this.iCenter; i++) _this.aSort.push(_this.aSort.shift());   _this.setUp()  }  else if(this.index < _this.iCenter)  {   for (var i = 0; i < _this.iCenter - this.index; i++) _this.aSort.unshift(_this.aSort.pop());   _this.setUp()  }  }  }  },  setUp : function ()  {  var _this = this;  var i = 0;  for (i = 0; i < this.aSort.length; i++) this.oUl.appendChild(this.aSort[i]);  for (i = 0; i < this.aSort.length; i++)  {  this.aSort[i].index = i;  if (i < 5)  {  this.css(this.aSort[i], "display", "block");  this.doMove(this.aSort[i], this.options[i], function ()  {   _this.doMove(_this.aSort[_this.iCenter].getElementsByTagName("img")[0], {opacity:100}, function ()   {   _this.doMove(_this.aSort[_this.iCenter].getElementsByTagName("img")[0], {opacity:100}, function ()   {   _this.aSort[_this.iCenter].onmouseover = function ()   {   _this.doMove(this.getElementsByTagName("div")[0], {bottom:0})   };   _this.aSort[_this.iCenter].onmouseout = function ()   {   _this.doMove(this.getElementsByTagName("div")[0], {bottom:-100})   }   })   })  });  }  else  {  this.css(this.aSort[i], "display", "none");  this.css(this.aSort[i], "width", 0);  this.css(this.aSort[i], "height", 0);  this.css(this.aSort[i], "top", 37);  this.css(this.aSort[i], "left", this.oUl.offsetWidth / 2)  }  if (i < this.iCenter || i > this.iCenter)  {  this.css(this.aSort[i].getElementsByTagName("img")[0], "opacity", 100)  this.aSort[i].onmouseover = function ()  {   _this.doMove(this.getElementsByTagName("img")[0], {opacity:100})   };  this.aSort[i].onmouseout = function ()  {   _this.doMove(this.getElementsByTagName("img")[0], {opacity:100})  };  this.aSort[i].onmouseout();  }  else  {  this.aSort[i].onmouseover = this.aSort[i].onmouseout = null  }  }   },  addEvent : function (oElement, sEventType, fnHandler)  {  return oElement.addEventListener ? oElement.addEventListener(sEventType, fnHandler, false) : oElement.attachEvent("on" + sEventType, fnHandler)  },  css : function (oElement, attr, value)  {  if (arguments.length == 2)  {  return oElement.currentStyle ? oElement.currentStyle[attr] : getComputedStyle(oElement, null)[attr]  }  else if (arguments.length == 3)  {  switch (attr)  {  case "width":  case "height":  case "top":  case "left":  case "bottom":   oElement.style[attr] = value + "px";   break;  case "opacity" :   oElement.style.filter = "alpha(opacity=" + value + ")";   oElement.style.opacity = value / 100;   break;  default :   oElement.style[attr] = value;   break  }   }  },  doMove : function (oElement, oAttr, fnCallBack)  {  var _this = this;  clearInterval(oElement.timer);  oElement.timer = setInterval(function ()  {  var bStop = true;  for (var property in oAttr)  {  var iCur = parseFloat(_this.css(oElement, property));  property == "opacity" && (iCur = parseInt(iCur.toFixed(2) * 100));  var iSpeed = (oAttr[property] - iCur) / 5;  iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);    if (iCur != oAttr[property])  {   bStop = false;   _this.css(oElement, property, iCur + iSpeed)  }  }  if (bStop)  {  clearInterval(oElement.timer);  fnCallBack && fnCallBack.apply(_this, arguments)   }  }, 30)  } }; window.onload = function () {  new ZoomPic("focus_Box"); };

收藏一下。

以上是“js怎么实现图片3D轮播效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI