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 相关文章推荐
select标记美化--JS式插件、后期加载
Apr 01 Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 Javascript
jQuery is()函数用法3例
May 06 Javascript
js中style.display=&quot;&quot;无效的解决方法
Oct 30 Javascript
JavaScript中number转换成string介绍
Dec 31 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
Dec 08 Javascript
JavaScript数组复制详解
Feb 02 Javascript
js实现动态显示时间效果
Mar 06 Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 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制作图型计数器的例子
2006/10/09 PHP
PHP strtotime函数详解
2009/12/18 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
Python算法应用实战之栈详解
2017/02/04 Python
Python使用进程Process模块管理资源
2020/03/05 Python
关于Django Models CharField 参数说明
2020/03/31 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
C++是不是类型安全的
2014/02/18 面试题
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
代理班主任的自我评价
2014/02/04 职场文书
干部下基层实施方案
2014/03/14 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
Redis入门基础常用操作命令整理
2022/06/01 Redis