jquery实现左右滑动式轮播图


Posted in Javascript onMarch 02, 2017

本文实例为大家分享了jquery左右滑动轮播图的具体代码,供大家参考,具体内容如下

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<title>图片轮播jq(左右切换)</title>
<style>
 *{margin: 0;padding:0; }
 ul{list-style: none;}
 .banner{width: 600px;height: 300px;border: 2px solid #ccc;margin: 100px auto;position: relative;overflow: hidden;z-index: 1;}
 .img{position: absolute;top: 0;left: 0;}
 .des{position: absolute;bottom: 0;left: 0;z-index: -2;background: #ccc}
 .des li{float: left;width: 600px;}
 .img li{float: left;}
 .num{position: absolute;bottom: 10px;width: 100%;text-align: center;font-size: 0;}
 .num li{width: 10px;height: 10px;background:rgba(0,0,0,0.5);display: block;border-radius: 100%;display: inline-block;margin: 0 5px;cursor: pointer;}
 .btn{display: none;}
 .btn span{display: block;width: 50px;height: 100px;background: rgba(0,0,0,0.6);color: #fff;font-size: 40px;line-height: 100px;text-align: center;cursor:pointer;}
 .btn .prev{position: absolute;left: 0;top: 50%;margin-top: -50px;}
 .btn .next{position: absolute;right: 0;top: 50%;margin-top: -50px;}
 .num .active{background-color: #fff;}
 .hide{display: none;}
 </style>
</head>
<body>
 <div class="banner">
 <ul class="img">
 <li><a href="#"><img width="600" height="300" src="img/1.jpg" alt="第1张图片"></a></li>
 <li><a href="#"><img width="600" height="300" src="img/1.jpg" alt="第2张图片"></a></li>
 <li><a href="#"><img width="600" height="300" src="img/1.jpg" alt="第3张图片"></a></li>
 <li><a href="#"><img width="600" height="300" src="img/1.jpg" alt="第4张图片"></a></li>
 <li><a href="#"><img width="600" height="300" src="img/1.jpg" alt="第5张图片"></a></li>
 </ul>
 <ul class="num"></ul>
 <ul class="des">
 <li>第一个</li>
 <li>第二个</li>
 <li>第三个</li>
 <li>第四个</li>
 <li>第五个</li>
 <li>第一个</li>
 </ul>
 <div class="btn">
 <span class="prev"><</span>
 <span class="next">></span>
 </div>
 
</div>
 
<script>
 
 $(function(){
 
 var i=0;
 var timer=null;
 for (var j = 0; j < $('.img li').length; j++) { //创建圆点
 $('.num').append('<li></li>')
 }
 $('.num li').first().addClass('active'); //给第一个圆点添加样式
 
 var firstimg=$('.img li').first().clone(); //复制第一张图片
 $('.img').append(firstimg).width($('.img li').length*($('.img img').width())); 
 //第一张图片放到最后一张图片后,设置ul的宽度为图片张数*图片宽度
 $('.des').width($('.img li').length*($('.img img').width()));
 
 
 // 下一个按钮
 $('.next').click(function(){
 i++;
 if (i==$('.img li').length) {
 i=1; //这里不是i=0
 $('.img').css({left:0}); //保证无缝轮播,设置left值
 };
 
 $('.img').stop().animate({left:-i*600},300);
 if (i==$('.img li').length-1) { //设置小圆点指示
 $('.num li').eq(0).addClass('active').siblings().removeClass('active');
 $('.des li').eq(0).removeClass('hide').siblings().addClass('hide');
 }else{
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 $('.des li').eq(i).removeClass('hide').siblings().addClass('hide');
 }
 
 })
 
 // 上一个按钮
 $('.prev').click(function(){
 i--;
 if (i==-1) {
 i=$('.img li').length-2;
 $('.img').css({left:-($('.img li').length-1)*600});
 }
 $('.img').stop().animate({left:-i*600},300);
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 $('.des li').eq(i).removeClass('hide').siblings().addClass('hide');
 })
 
 //设置按钮的显示和隐藏
 $('.banner').hover(function(){
 $('.btn').show();
 },function(){
 $('.btn').hide();
 })
 
 //鼠标划入圆点
 $('.num li').mouseover(function(){
 var _index=$(this).index();
 $('.img').stop().animate({left:-_index*600},150);
 $('.num li').eq(_index).addClass('active').siblings().removeClass('active');
 $('.des li').eq(_index).removeClass('hide').siblings().addClass('hide');
 })
 
 //定时器自动播放
 timer=setInterval(function(){
 i++;
 if (i==$('.img li').length) {
 i=1;
 $('.img').css({left:0});
 };
 
 $('.img').stop().animate({left:-i*600},300);
 if (i==$('.img li').length-1) { 
 $('.num li').eq(0).addClass('active').siblings().removeClass('active');
 $('.des li').eq(0).removeClass('hide').siblings().addClass('hide');
 }else{
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 $('.des li').eq(i).removeClass('hide').siblings().addClass('hide');
 }
 },1000)
 
 //鼠标移入,暂停自动播放,移出,开始自动播放
 $('.banner').hover(function(){ 
 clearInterval(timer);
 },function(){
 timer=setInterval(function(){
 i++;
 if (i==$('.img li').length) {
 i=1;
 $('.img').css({left:0});
 };
 
 $('.img').stop().animate({left:-i*600},300);
 if (i==$('.img li').length-1) { 
 $('.num li').eq(0).addClass('active').siblings().removeClass('active');
 $('.des li').eq(0).removeClass('hide').siblings().addClass('hide');
 }else{
 $('.num li').eq(i).addClass('active').siblings().removeClass('active');
 $('.des li').eq(i).removeClass('hide').siblings().addClass('hide');
 }
 },1000)
 })
 
 })
</script>

</body>
</html>

更多关于滑动效果的专题,请点击下方链接查看:

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

Javascript 相关文章推荐
javascript instanceof 内部机制探析
Oct 15 Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
JavaScript使用replace函数替换字符串的方法
Apr 06 Javascript
去除字符串左右两边的空格(实现代码)
May 12 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
Oct 10 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
详解webpack 热更新优化
Sep 13 Javascript
javascript数据类型中的一些小知识点(推荐)
Apr 18 Javascript
Vue实现导航栏的显示开关控制
Nov 01 Javascript
vue2路由基本用法实例分析
Mar 06 Javascript
如何写好你的JavaScript【推荐】
Mar 02 #Javascript
js前端日历控件(悬浮、拖拽、自由变形)
Mar 02 #Javascript
JS操作input标签属性checkbox全选的实现代码
Mar 02 #Javascript
JavaScript正则获取地址栏中参数的方法
Mar 02 #Javascript
原生js仿浏览器滚动条效果
Mar 02 #Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 #Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 #Javascript
You might like
终于听上了直流胆调频
2021/03/02 无线电
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php微信开发之谷歌测距
2018/06/14 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
linux面试题参考答案(4)
2013/01/28 面试题
日语系毕业生推荐信
2013/11/11 职场文书
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
生日邀请函范文
2014/01/13 职场文书
物流管理专业求职信
2014/05/29 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
Java8中接口的新特性使用指南
2021/11/01 Java/Android
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js