3D Banner(jQuery)
1.这是用面向对象的思想去动态生成banner的简易流程,用到一个javaScript框架jQuer;
2.将代码黏贴成html文件,直接用浏览器打开即可;
3.layer属于弹窗提示类插件,可能需要自己手动引入,因为在分成1000分以上时,可能浏览器会被卡死,所以给了一个小小的弹窗提示!
4.代码中有注释,看到的小伙伴可以用chrome或者是火狐浏览器测试一下,每个浏览器解析代码机制不同,会一点差异,不支持IE浏览器。
代码如下:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content="1的N次幂"> <meta name="Keywords" content="3D banner"> <meta name="Description" content=""> <title>Document</title> <style type="text/css"> *{ margin:0; padding:0; } body{ font-size:14px; } a{ text-decoration:none; font-size:14px; color:#fff; } ul li,ol{ list-style-type:none; } .bg_img{ width:100%; height:100%; } .bg_img img{ width:100%; height:100%; position:fixed; top:0; left:0; } .container{ margin-top:110px; width:100%; height:600px; } .container .banner{ margin:auto; width:800px; height:300px; perspective:800px; } .container .banner ul{ width:800px; height:300px; } .container .banner ul li{ height:300px; position:relative; transform-style:preserve-3d; float:left; } .container .banner ul li div{ height:300px; width:100%; position:absolute; text-align:center; line-height:300px; } /*li div:nyh-child(n):表示li下的第n个div transform-origin:旋转轴 transform:translateZ(150px) rotateX(90deg);沿着z轴正方向移动150px,沿着X轴旋转90度 */ .container .banner ul li div:nth-child(1){ top:-300px; transform:translateZ(150px) rotateX(90deg); transform-origin:bottom; background-image:url("http://a2.qpic.cn/psb?/V13NXKT31gjmyo/a5bjFmef8GgRPOHWtmyaLfIoH*I23Oii0kIJm1.uzgo!/b/dAkBAAAAAAAA&bo=IAMvAQAAAAAFByk!&rf=viewer_4"); } .container .banner ul li div:nth-child(2){ top:300px; transform:translateZ(150px) rotateX(-90deg); transform-origin:top; background-image:url("http://a3.qpic.cn/psb?/V13NXKT31gjmyo/4sadN7zAjedk2GVCDbKcSXvHFfJ2OUfys9AvdQ73Cdc!/b/dAoBAAAAAAAA&bo=KgM.AQAAAAAFADU!&rf=viewer_4"); } .container .banner ul li div:nth-child(3){ transform:translateZ(150px); background-image:url("http://a1.qpic.cn/psb?/V13NXKT31gjmyo/T*2y5kTD84XvskMWRXIItp64ZFWat2ojZk6rHRFY81A!/b/dAsBAAAAAAAA&bo=KQM3AQAAAAAFAD8!&rf=viewer_4"); } .container .banner ul li div:nth-child(4){ transform:translateZ(-150px) rotateX(180deg); background-image:url("http://a1.qpic.cn/psb?/V13NXKT31gjmyo/.H6eziKX93XqAVZ1cZMbtyi9YNRkLbwMoZOzlun06Ak!/b/dAsBAAAAAAAA&bo=KQNUAQAAAAAFAFw!&rf=viewer_4"); } .container .banner ol{ position:absolute; right:-60px; bottom:-15px; } .container .banner ol li{ position:relative; z-index:9999; float:left; margin:3px; font-size:14px; border:1px solid #fff; background-color:rgba(0,0,0,0.8); color:#fff; width:20px; height:20px; text-align:center; line-height:20px; border-radius:50%; cursor:pointer; transition:.5s; } .container .banner ol:hover li{ box-shadow:1px 1px 1px 0 rgba(204,204,204,0.7); transition:.5s; } .container .banner ol li:hover{ box-shadow:1px 1px 1px 1px #222; transition:.5s; } #config{ margin:30px; position:relative; z-index:9999; font-size:20px; color:#fff; } #config input{ height:20px; width:100px; font-weight:800; font-size:20px; color:#f00; border:0; } </style> </head> <body> <div class="bg_img"> <img src="http://a1.qpic.cn/psb?/V13NXKT31gjmyo/k72K3W2VjrL9oaQotS9QgcTWd2bZ9pMl6iR4FMo8ylk!/b/dHEBAAAAAAAA&bo=cgSAAgAAAAAFANc!&rf=viewer_4"/> </div> <div id="config"> 份 数:<input type="number" id="count"/></br> 时间(秒):<span type="number" id="base_time"></span></br> 延迟(秒):<span type="number" id="delay_time"></span> </div> <div class="container"> <div class="banner"> <ul> </ul> <ol> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ol> </div> </div> <script type="text/javascript" src="http://files.cnblogs.com/files/zhangbin-java/jquery-1.11.3.js"></script> <script type="text/javascript" src="http://files.cnblogs.com/files/zhangbin-java/layer.js"></script> <script type="text/javascript"> //设置轮播图被分成的分数,播完的时间,和延迟时间 function banner(count,base_time,delay_time){ var $ul = $(".container .banner ul"); var $ol = $(".container .banner ol"); var bg_position = -800/count; //循环份数,动态的设置背景定位 for(var i=0;i<count;i++){ if(i>=count-(count-1)/2){ $ul.append( "<li style='z-index:"+-i+";transition:"+base_time+"s "+i*delay_time+"s;width:"+-bg_position+"px'>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "</li>"); }else{ $ul.append( "<li style='z-index:"+i+";transition:"+base_time+"s "+i*delay_time+"s;width:"+-bg_position+"px'>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "<div style='background-position:"+bg_position*i+"px'></div>"+ "</li>"); } } $(".container .banner ol").show(); $ol.find("li").click(function(){ var index = $(this).index(); $ul.find("li").finish().css({ "transform":"rotateX("+index*90+"deg)" }); }) } /*banner(份数,基础时间,延迟时间) banner(count,base_time,delay_time) 测试结果:当满足以下条件时,效果最好 if(count>=100){ base_time = 1 delay_time = 0.01; } if(count<100){ base_time = 1 delay_time = 0.1; } */ $("#count").val(10) $("#base_time").text(1); $("#delay_time").text(0.1); banner(10,1,0.1);//默认是被分为10分 每份需要1秒钟走完,下一份开始走的时间会延迟0.1秒 $(function(){ //动态的设置被分成的分数,这里采用键盘事件获取分数,请用键盘输入分数 $("#config").find("#count").keyup(function(){ $(".container .banner ol").hide(); $(".container .banner ul").html(""); var count = $(this).val(); if(count<=10){ $("#base_time").text(0.5); $("#delay_time").text(0.1); banner(count,0.5,0.1) }else if(count<=50){ $("#base_time").text(1); $("#delay_time").text(0.03); banner(count,1,0.03); }else if(count<=100){ $("#base_time").text(1); $("#delay_time").text(0.02); banner(count,1,0.02); }else if(count<1000){ $("#base_time").text(1); $("#delay_time").text(count/30000); banner(count,1,count/30000); }else{ //被分成1000分以上时给予提示,采用layer插件,需引入jQuery layer.confirm('你确定你的电脑支持'+count+'份?', { btn: ['YES','NO'] }, function(){ layer.closeAll("dialog"); $("#base_time").text(1); $("#delay_time").text(count/100000); banner(count,1,count/100000); }, function(){ layer.closeAll("dialog"); }); } }); }) </script> </body> </html>
我们把它分成150分的效果
3D Banner(jQuery)的更多相关文章
- 3D banner(CSS3+HTML5)
1.这是一篇 3Dbanner制作的简易流程,支持高版本的chrome和firefox浏览器,俩浏览器显示可能会有些差异 2.没有兼容性代码,因为仅仅只是熟悉流程,希望小伙伴们自己改善哈(>﹏& ...
- 14种网页图片和文字特效的jQuery插件代码
1.网页图片3d旋转jQuery代码 演示和下载地址 2.存css3实现的tabl选项卡代码 演示和下载地址 3.jQuery标签旋转代码 演示和下载地址 4.鼠标悬浮的图片选项卡代码 演示和下载地址 ...
- jQuery背景跟随鼠标移动的网页导航
首页 PSD模板 CSS模板 特效插件 源码下载 酷站欣赏 建站资源 建站教程 心境之旅 在线留言 设为首页 加入收藏 我要投稿 联系站长 Search 首页 PSD模板 CSS模板 特效插件 ...
- jquery树形菜单插件treeView
Jquery的treeview很好用,如果是简单的树形菜单按照下面的源码实例模仿就可以. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- Web前端资源汇总
本文地址:http://www.cnblogs.com/jihua/p/webfront.html 网页特效库 2017新年快乐特效 CSS3+jQuery实现时钟插件 Html5入门实例" ...
- tooltip 鼠标移动上去出现图片或文字与title大同小异
代码如下: <script type="text/javascript" src="jquery-1.3.2.min.js"></script ...
- 从零开始系列之vue全家桶(6)实战前的设计
搭建好基本框架后我们应该先想一想个人博客应该有哪些功能呢? 为了更好的适应企业的要求,这里我将搭建一个非典型的博客. 在全部采用单页开发的情况下,使用vue-router,路由分别设置home.abo ...
- 30款jQuery常用网页焦点图banner图片切换 下载
1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...
- 30款jQuery常用网页焦点图banner图片切换 下载 (转)
1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...
随机推荐
- OpenCASCADE Linear Extrusion Surface
OpenCASCADE Linear Extrusion Surface eryar@163.com Abstract. OpenCASCADE linear extrusion surface is ...
- JQuery利用sort对DOM元素进行排序
前言 排序对于我们是再熟悉不过了,在绝大数应用程序中都会有这样一个场景:当我们从服务器端获取一个列表时,在界面上进行渲染,我们可以会依赖于某一个规则来进行排序,当然此时绝大多数会再次与服务器进行交互来 ...
- xprivacy改IMEI
XPrivacy是一款基于Xposed框架的模块应用,可以对所有应用可能泄露隐私的权限进行管理,对禁止可能会导致崩溃的应用采取欺骗策略,提供伪造信息.前提你的手机进行root过.我这边使用的是geny ...
- 手动实现jQuery Tools里面tab功能
平时开发中用的Javascript类库都是jQuery,用到插件或者第三方类库能从jQuery Tools里面找到,基本不用其他的.当然有时同事喜欢使用jQuery UI里面的插件.并且jQuery ...
- 窥探Swift之别样的枚举类型
想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在 ...
- IOS开发之显示微博表情
在上一篇博客中山寨了一下新浪微博,在之后的博客中会对上一篇代码进行优化和重用,上一篇的微博请求的文字中有一些表情没做处理,比如带有表情的文字是这样的“我要[大笑],[得意]”.显示的就是请求的字符串, ...
- ASP.NET 5 使用 TestServer 进行单元测试
之前如果对 ASP.NET WebAPI 进行单元测试(HttpClient 发起请求,并且可调试 WebAPI),一般采用 Owin 的方式,具体参考:<开发笔记:用 Owin Host 实现 ...
- eclipse导入项目Archive for required library cannot be read or is not a valid ZIP file
原因 :部分文件毁坏. 解决办法:1. 在eclipse中运行maven clean install 2. 报错,找到报错的文件物理删除,然后重新运行maven clean install 3. 循 ...
- Cesium应用篇:3控件(4)Geocoder
Geocoder是一个非常简单的控件,但也是非常常用且实用的控件,顾名思义,Geocoder就是地理编码的意思,而平常我们经常会查询一些地物,也就是常用的POI搜索,就是Geocoder的功劳. 首先 ...
- Cookie中的几个概念
1. Domain Domain表示Cookie所在的域(如:www.baidu.com),对于Cookie的访问是不能跨域的(如:我们无法在www.baidu.com下访问www.google.co ...