Jquery代码实现图片轮播效果(一)


Posted in Javascript onAugust 12, 2015

文章写的不好,还请各位高手指教,不废话了,先上张效果图吧看下:

Jquery代码实现图片轮播效果(一)

在线演示         下载源码

首先是初始化部分:将除了第一张轮播图片意外的图片都隐藏,并且隐藏向前、向后按钮,使第一个索引按钮处于激活状态。

事件部分:通过jquery的hover()绑定鼠标上悬以及离开时的事件处理, jquery的bind()方法绑定鼠标点击事件处理向前、向后翻动、轮播控制:pre(), next(), play(), start()开始自动轮播,stop()停止自动轮播。

下篇是一个纯粹的jquery轮播插件, 该插件可以定制各种效果,方便的配置以及可扩展。

下面是整体的代码:

index.html
[html] view plaincopy
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>jquery轮播效果图 </title> 
<script type="text/javascript" src="scripts/jquery-1.9.1.js"></script> 
<style type="text/css"> 
 * { 
 padding: 0px; 
 margin: 0px; 
 } 
 a { 
 text-decoration: none; 
 } 
 ul { 
 list-style: outside none none; 
 } 
 .slider, .slider-panel img, .slider-extra { 
 width: 650px; 
 height: 413px; 
 } 
 .slider { 
 text-align: center; 
 margin: 30px auto; 
 position: relative; 
 } 
 .slider-panel, .slider-nav, .slider-pre, .slider-next { 
 position: absolute; 
 z-index: 8; 
 } 
 .slider-panel { 
 position: absolute; 
 } 
 .slider-panel img { 
 border: none; 
 } 
 .slider-extra { 
 position: relative; 
 } 
 .slider-nav { 
 margin-left: -51px; 
 position: absolute; 
 left: 50%; 
 bottom: 4px; 
 } 
 .slider-nav li { 
 background: #3e3e3e; 
 border-radius: 50%; 
 color: #fff; 
 cursor: pointer; 
 margin: 0 2px; 
 overflow: hidden; 
 text-align: center; 
 display: inline-block; 
 height: 18px; 
 line-height: 18px; 
 width: 18px; 
 } 
 .slider-nav .slider-item-selected { 
 background: blue; 
 } 
 .slider-page a{ 
 background: rgba(0, 0, 0, 0.2); 
 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000); 
 color: #fff; 
 text-align: center; 
 display: block; 
 font-family: "simsun"; 
 font-size: 22px; 
 width: 28px; 
 height: 62px; 
 line-height: 62px; 
 margin-top: -31px; 
 position: absolute; 
 top: 50%; 
 } 
 .slider-page a:HOVER { 
 background: rgba(0, 0, 0, 0.4); 
 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#66000000,endColorstr=#66000000); 
 } 
 .slider-next { 
 left: 100%; 
 margin-left: -28px; 
 } 
</style> 
<script type="text/javascript"> 
 $(document).ready(function() { 
 var length, 
  currentIndex = 0, 
  interval, 
  hasStarted = false, //是否已经开始轮播 
  t = 3000; //轮播时间间隔 
 length = $('.slider-panel').length; 
 //将除了第一张图片隐藏 
 $('.slider-panel:not(:first)').hide(); 
 //将第一个slider-item设为激活状态 
 $('.slider-item:first').addClass('slider-item-selected'); 
 //隐藏向前、向后翻按钮 
 $('.slider-page').hide(); 
 //鼠标上悬时显示向前、向后翻按钮,停止滑动,鼠标离开时隐藏向前、向后翻按钮,开始滑动 
 $('.slider-panel, .slider-pre, .slider-next').hover(function() { 
  stop(); 
  $('.slider-page').show(); 
 }, function() { 
  $('.slider-page').hide(); 
  start(); 
 }); 
 $('.slider-item').hover(function(e) { 
  stop(); 
  var preIndex = $(".slider-item").filter(".slider-item-selected").index(); 
  currentIndex = $(this).index(); 
  play(preIndex, currentIndex); 
 }, function() { 
  start(); 
 }); 
 $('.slider-pre').unbind('click'); 
 $('.slider-pre').bind('click', function() { 
  pre(); 
 }); 
 $('.slider-next').unbind('click'); 
 $('.slider-next').bind('click', function() { 
  next(); 
 }); 
 /** 
  * 向前翻页 
  */ 
 function pre() { 
  var preIndex = currentIndex; 
  currentIndex = (--currentIndex + length) % length; 
  play(preIndex, currentIndex); 
 } 
 /** 
  * 向后翻页 
  */ 
 function next() { 
  var preIndex = currentIndex; 
  currentIndex = ++currentIndex % length; 
  play(preIndex, currentIndex); 
 } 
 /** 
  * 从preIndex页翻到currentIndex页 
  * preIndex 整数,翻页的起始页 
  * currentIndex 整数,翻到的那页 
  */ 
 function play(preIndex, currentIndex) { 
  $('.slider-panel').eq(preIndex).fadeOut(500) 
  .parent().children().eq(currentIndex).fadeIn(1000); 
  $('.slider-item').removeClass('slider-item-selected'); 
  $('.slider-item').eq(currentIndex).addClass('slider-item-selected'); 
 } 
 /** 
  * 开始轮播 
  */ 
 function start() { 
  if(!hasStarted) { 
  hasStarted = true; 
  interval = setInterval(next, t); 
  } 
 } 
 /** 
  * 停止轮播 
  */ 
 function stop() { 
  clearInterval(interval); 
  hasStarted = false; 
 } 
 //开始轮播 
 start(); 
 }); 
</script> 
</head> 
<body> 
 <div class="slider"> 
 <ul class="slider-main"> 
  <li class="slider-panel"> 
  <a href="https://3water.com" target="_blank"><img alt="关注三水点靠木" title="关注三水点靠木" src="images/1.jpg"></a> 
  </li> 
  <li class="slider-panel"> 
  <a href="https://3water.com" target="_blank"><img alt="关注三水点靠木" title="关注三水点靠木" src="images/2.jpg"></a> 
  </li> 
  <li class="slider-panel"> 
  <a href="https://3water.com" target="_blank"><img alt="关注三水点靠木" title="关注三水点靠木" src="images/3.jpg"></a> 
  </li> 
  <li class="slider-panel"> 
  <a href="https://3water.com" target="_blank"><img alt="关注三水点靠木" title="关注三水点靠木" src="images/4.jpg"></a> 
  </li> 
 </ul> 
 <div class="slider-extra"> 
  <ul class="slider-nav"> 
  <li class="slider-item">1</li> 
  <li class="slider-item">2</li> 
  <li class="slider-item">3</li> 
  <li class="slider-item">4</li> 
  </ul> 
  <div class="slider-page"> 
  <a class="slider-pre" href="javascript:;;"><</a> 
  <a class="slider-next" href="javascript:;;">></a> 
  </div> 
 </div> 
 </div> 
</body> 
</html>

至此一个简单的jquery轮播效果就完成了,当然还有很多需要改进的地方。

Javascript 相关文章推荐
js操作二级联动实现代码
Jul 27 Javascript
JavaScript 继承使用分析
May 12 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
Apr 11 Javascript
javascript中键盘事件用法实例分析
Jan 30 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
使用angular帮你实现拖拽的示例
Jul 05 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
node实现基于token的身份验证
Apr 09 Javascript
浅析JS中回调函数及用法
Jul 25 Javascript
微信小程序开发实现的IP地址查询功能示例
Mar 28 Javascript
jQuery分组选择器简单用法示例
Apr 04 jQuery
javascript表单验证大全
Aug 12 #Javascript
JavaScript实现动态删除列表框值的方法
Aug 12 #Javascript
jQuery实现文件上传进度条特效
Aug 12 #Javascript
XML文件转化成NSData对象的方法
Aug 12 #Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 #Javascript
jQuery实现动态添加和删除一个div
Aug 12 #Javascript
JavaScript多线程详解
Aug 12 #Javascript
You might like
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python Requests 基础入门
2016/04/07 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Python定时任务sched模块用法示例
2018/07/16 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Django框架实现的分页demo示例
2019/05/25 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
Pycharm小白级简单使用教程
2020/01/08 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
银行员工职业规划范文
2014/01/21 职场文书
美德少年事迹材料
2014/01/23 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL