jquery实现左右轮播切换效果


Posted in jQuery onJanuary 01, 2018

本文实例为大家分享了jquery实现左右轮播切换效果展示的具体代码,供大家参考,具体内容如下

html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>Document</title> 
 <link rel="stylesheet" href="css/banner.css" rel="external nofollow" > 
</head> 
<body> 
 <div id="banner"> 
  <!-- 图片区域 --> 
  <ul class="banner-img" 
   data-load="bannerImgs"> 
   <!-- 
   <li> 
    <a href="${product-details.html?lid=28}" rel="external nofollow" > 
    <img src="${img/index/banner1.png}"> 
    </a> 
   </li> 
   --> 
   <li style="left:50%;"> 
   <img src="img/index/banner1.png"> 
   </li> 
  </ul> 
  <!--左右方向按钮--> 
  <a href="javascript:;" class="ck-slide ck-left" data-move="left"></a> 
  <a href="javascript:;" class="ck-slide ck-right" data-move="right"></a> 
  <!--导航小圆点--> 
  <ul class="indicators" data-load="bannerInds"> 
  <!-- <li></li> --> 
  </ul> 
 </div> 
 
 <script src="js/jquery.min.js"></script> 
 <script src="js/banner.js"></script> 
</body> 
</html>

css:

/*banner部分*/ 
#banner{ 
 width:960px; 
 height:384px; 
 overflow:hidden; 
 position:relative; 
} 
#banner ul.banner-img{ 
 position:absolute; left:0; 
} 
#banner ul.banner-img>li{float:left;width:960px;} 
#banner ul.banner-img img{ 
 width:960px; 
 height:384px; 
} 
#banner a.ck-slide{ 
 position:absolute; 
 top:150px; 
 width:35px; 
 height:70px; 
 border-radius:3px; 
 background:#000; 
 opacity:0.15; 
 transition:all .3s linear; 
} 
#banner a.ck-left{ 
 left:40px; 
 background: #000 url(../img/index/arrow-left.png) no-repeat center center; 
} 
#banner a.ck-right{ 
 right:0px; 
 background:#000 url(../img/index/arrow-right.png) no-repeat center center; 
} 
#banner a.ck-slide:hover{ 
 opacity:0.3; 
} 
#banner ul.indicators{ 
 position:absolute; 
 bottom:10px; 
 left:50%; 
 margin-left:-34px; 
 list-style: none; 
} 
#banner ul.indicators li{ 
 width:12px; 
 height:12px; 
 background:#fff; 
 border-radius:50%; 
 float:left; 
 margin-right:5px; 
 transition:all .2s linear; 
} 
#banner ul.indicators li:hover,#banner ul.indicators li.hover{ 
 cursor:pointer; 
 background-color:#0AA1ED; 
}

 js:

$(()=>{ 
 $.ajax({ 
  type:"get", 
  url:"php/xz.php", 
  dataType:"json" 
 }).then(data=>{ 
  console.log(data); 
  var html=""; 
  const LIWIDTH=960; 
  for(var item of data){ 
   html+=`<li> 
    <a href="${item.href}" rel="external nofollow" title="${item.title}"> 
    <img src="${item.img}"> 
    </a> 
   </li>`; 
  } 
  html+=`<li> 
    <a href="${data[0].href}" rel="external nofollow" title="${data[0].title}"> 
    <img src="${data[0].img}"> 
    </a> 
   </li>`; 
  console.log(html); 
  var $ulImg=$(".banner-img"); 
  $ulImg.html(html).css("width",LIWIDTH*(data.length+1)); 
 
  var $ids=$(".indicators"); 
   
  $ids.html("<li></li>".repeat(data.length)).children().first().addClass("hover"); 
   
  const WAIT=2000,DURA=1000; 
  var moved=0,timer=null; 
  function move(dir=1){ 
   moved+=dir; 
   console.log("moved="+moved); 
 
   $ulImg.animate({ 
    left:-LIWIDTH*moved 
   },DURA,()=>{ 
    if(moved%data.length==0){ 
     moved=0; 
     $ulImg.css("left",0); 
    } 
    $ids.children(`li:eq(${moved})`).addClass("hover").siblings().removeClass("hover"); 
   }) 
  } 
 
  var timer=setInterval(move,WAIT); 
 
  $('#banner').hover( 
   ()=>{ //这个是什么? 
    clearInterval(timer), 
    timer=null; 
   }, 
   ()=>{ 
    timer=setInterval(move,WAIT); 
   } 
  ); 
 
  $("[data-move=right]").click(()=>{ 
   //防止动画叠加 
   /*clearInterval(timer); 
   timer=null; 
   move(); 
   timer=setInterval(move,WAIT);*/ 
   if(!$ulImg.is(":animated")) 
    move(); 
  }); 
 
  $("[data-move=left]").click(()=>{ 
   if(!$ulImg.is(":animated")){ 
    if(moved==0){ 
     $ulImg.css("left",-LIWIDTH*data.length); 
     moved=data.length; 
    } 
    move(-1); 
   } 
  }); 
 
  $ids.on("mouseover","li",function(){ 
   var $li=$(this); 
   var i=$li.index(); 
   moved=i; 
   $ulImg.stop(true).animate({ 
    left:-LIWIDTH*moved 
   },DURA,()=>{ 
    $ids.children(":eq("+i+")") 
     .addClass("hover") 
     .siblings().removeClass("hover"); 
   }) 
  }); 
 }) 
})

php:

<?php 
 
 header("Content-type:application/json"); 
 require_once("init.php"); 
 
 $sql="SELECT img,title,href FROM xz_index_carousel"; 
 $result=mysqli_query($conn,$sql); 
 echo json_encode(mysqli_fetch_all($result,1)); 
?>

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

jQuery 相关文章推荐
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
jQuery实现轮播图效果demo
Jan 11 jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
jQuery+ajax实现文件上传功能
Dec 22 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 #jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 #jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 #jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 #jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 #jQuery
jQuery实现右侧抽屉式在线客服功能
Dec 25 #jQuery
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 #jQuery
You might like
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
2015/01/19 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
中英文求职信范文
2014/01/27 职场文书
追悼会主持词
2014/03/20 职场文书
新农村建设标语
2014/06/24 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
英文导游词
2015/02/13 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书
mysq启动失败问题及场景分析
2021/07/15 MySQL
python turtle绘图
2022/05/04 Python