javascript实现切割轮播效果


Posted in Javascript onNovember 28, 2019

本文实例为大家分享了javascript实现切割轮播的具体代码,供大家参考,具体内容如下

效果

javascript实现切割轮播效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="js/jquery.min.js"></script>
 <style>

 .container{
  position: relative;
  width: 560px;
  height: 300px;
 }
 .container ul{
  /*transform-style:preserve-3d;*/
  /*transform: rotateX(-30deg) rotateY(21deg);*/
  width: 560px;
  height: 300px;
  border:2px solid red;
  list-style-type: none;
  margin:0;
  padding:0;
 }
 .container ul li{
  position: relative;
  float: left;
  /*一张图分作5片,图的总宽度是560*/
  width: 112px;
  height: 300px;
  transform-style:preserve-3d;
  transition:all 0.5s;
 }
 .container ul li span{
  position: absolute;
  left:0;
  top:0;
  width: 100%;
  height: 100%
 }
 /*以下4个选择器设定立体效果*/
 .container ul li span:nth-child(1){
  background: yellow;
  transform:translateZ(150px);
 }
 .container ul li span:nth-child(2){
  background: pink;
  transform:translateY(-150px) rotateX(90deg);
 }
 .container ul li span:nth-child(3){
  background: orange;
  transform:translateZ(-150px) rotateX(180deg);
 }
 .container ul li span:nth-child(4){
  background: blue;
  transform:translateY(150px) rotateX(270deg);
 }
 /*//以下4个选择器设定第n个span的背景图*/
 .container ul li span:nth-child(1){
  background: url(images/1.jpg);
 }
 .container ul li span:nth-child(2){
  background: url(images/2.jpg);
 }
 .container ul li span:nth-child(3){
  background: url(images/3.jpg);
 }
 .container ul li span:nth-child(4){
  background: url(images/4.jpg);
 }
 /*以下5个选择器用于设定第i个li的背景定位*/
 .container ul li:nth-child(1) span{
  background-position: 0px 0px;
 }
 .container ul li:nth-child(2) span{
  background-position: -112px 0px;
 }
 .container ul li:nth-child(3) span{
  background-position: -224px 0px;
 }
 .container ul li:nth-child(4) span{
  background-position: -336px 0px;
 }
 .container ul li:nth-child(5) span{
  background-position: -448px 0px;
 }

 /*.container ul li:nth-child(1) span:nth-child(1){
  background: url(images/1.jpg) 0px 0px;
 }
 .container ul li:nth-child(2) span:nth-child(1){
  background: url(images/1.jpg) -112px 0px;
 }
 .container ul li:nth-child(3) span:nth-child(1){
  background: url(images/1.jpg) -224px 0px;
 }
 .container ul li:nth-child(4) span:nth-child(1){
  background: url(images/1.jpg) -336px 0px;
 }
 .container ul li:nth-child(5) span:nth-child(1){
  background: url(images/1.jpg) -448px 0px;
 }

 .container ul li:nth-child(1) span:nth-child(2){
  background: url(images/2.jpg) 0px 0px;
 }
 .container ul li:nth-child(2) span:nth-child(2){
  background: url(images/2.jpg) -112px 0px;
 }*/
  
 .container span.left, .container span.right{
  position: absolute;
  top:50%;
  background: rgba(0,0,0,0.3);
  width: 18px;
  height: 40px;
  font-size:25px;
  font-weight: bold;
  color:white;
  text-align: center;
  line-height: 40px;
  cursor:pointer;
 }
 .container span.left{
  left:0;
 }
 .container span.right{
  right:0;
 }
 </style>
</head>
<body>
 <div class="container">
 <ul>
  <li>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  </li>
  <li>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  </li>
  <li>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  </li>
  <li>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  </li>
  <li>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  </li>
 </ul>
 <span class="left"><</span>
 <span class="right">></span>
 </div>
</body>
</html>
<script>
 $(function(){
 var allowClick = true;
 var seq = 0; //代表初始的转动角度次数
 //先给这5个li的动画效果设置不同的延时(delay)
 //index表示循环中的索引号,item表示当前项(这里是li)
 $("ul>li").each(  function(index,item){
  var delay_time = index*0.25;
  $(item).css({"transition-delay": delay_time + "s"});
 } );

 //transitionend事件:动画结束事件
 $("ul>li:last-child").on('transitionend',function(){
  allowClick = true; //允许点击
 });

 //
 $("span.left").on('click',function(){
  //如果allowClick为false,表示此时还不允许点击,就直接退出
  if(allowClick == false){ return ;}

  allowClick = false; //如果可以继续下去,此时就会去执行动画,则此刻
    //就必须讲这个allowClick设定为false
  seq--;
  var angle = -seq*90;
  $("ul>li").css({"transform":"rotateX(" + angle + "deg)"});
 });
 $("span.right").on('click',function(){
  //如果allowClick为false,表示此时还不允许点击,就直接退出
  if(allowClick == false){ return ;}
  allowClick = false;
  seq++;
  var angle = -seq*90;
  $("ul>li").css({"transform":"rotateX(" + angle + "deg)"});
 });
 });
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 分号引起的一段调试问题
Jun 18 Javascript
Javascript学习笔记2 函数
Jan 11 Javascript
js变量以及其作用域详解
Jul 18 Javascript
Javascript访问器属性实例分析
Dec 30 Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 Javascript
javascript实现获取字符串hash值
May 10 Javascript
JS面试题---关于算法台阶的问题
Jul 26 Javascript
利用JQuery阻止事件冒泡
Dec 01 Javascript
jquery拖动改变div大小
Jul 04 jQuery
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
vue组件之间数据传递的方法实例分析
Feb 12 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 Javascript
javascript实现商品图片放大镜
Nov 28 #Javascript
javascript实现视频弹幕效果(两个版本)
Nov 28 #Javascript
javascript实现弹幕墙效果
Nov 28 #Javascript
jquery实现直播弹幕效果
Nov 28 #jQuery
jQuery实现简单弹幕效果
Nov 28 #jQuery
微信小程序事件流原理解析
Nov 27 #Javascript
JS实现简单省市二级联动
Nov 27 #Javascript
You might like
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
python实现定时播放mp3
2015/03/29 Python
python在控制台输出进度条的方法
2015/06/20 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
法律专业个人实习自我鉴定
2013/09/23 职场文书
5s标语大全
2014/06/23 职场文书
党员志愿者活动总结
2014/06/26 职场文书
学生检讨书范文
2015/01/27 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android