本文实例讲述了jquery实现鼠标悬浮停止轮播特效代码。分享给大家供大家参考,具体如下:

运行效果截图如下:

具体代码如下:

一、主体程序

轮播图①(手动点击轮播)

1

2

3

4

二、CSS样式

*{

margin: 0;

padding: 0;

}

ul{

list-style: none;

}

.slideShow{

width: 346px;

height: 210px; /*其实就是图片的高度*/

border: 1px #eeeeee solid;

margin: 100px auto;

position: relative;

overflow: hidden; /*此处需要将溢出框架的图片部分隐藏*/

}

.slideShow ul{

width: 2000px;

position: relative; /*此处需注意relative : 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置,如果没有这个属性,图片将不可左右移动*/

}

.slideShow ul li{

float: left; /*让四张图片左浮动,形成并排的横着布局,方便点击按钮时的左移动*/

width: 346px;

}

.slideShow .showNav{ /*用绝对定位给数字按钮进行布局*/

position: absolute;

right: 10px;

bottom: 5px;

text-align:center;

font-size: 12px;

line-height: 20px;

}

.slideShow .showNav span{

cursor: pointer;

display: block;

float: left;

width: 20px;

height: 20px;

background: #ff5a28;

margin-left: 2px;

color: #fff;

}

.slideShow .showNav .active{

background: #b63e1a;

}

三、jQuery程序

先说一下鼠标悬浮图片轮播停止的原理:

1、当鼠标悬浮在框架上方时,清除定时器即用clearInterval(timer)关闭定时器,使自动轮播停止

2、当鼠标离开框架上方时,重新启动定时器

3、鼠标的悬浮和离开借助于hover函数

hover(over,out)一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。

参数:

over (Function) : 鼠标移到元素上要触发的函数。

out (Function): 鼠标移出元素要触发的函数。

下面来看jQuery程序:

$(document).ready(function(){

var slideShow=$(".slideShow"), //获取最外层框架的名称

ul=slideShow.find("ul"),

showNumber=slideShow.find(".showNav span"),//获取按钮

oneWidth=slideShow.find("ul li").eq(0).width(); //获取每个图片的宽度

var timer=null; //定时器返回值,主要用于关闭定时器

var iNow=0; //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0

/*手动点击按钮进行图片轮播代码开始*/

showNumber.on("click",function(){ //为每个按钮绑定一个点击事件

$(this).addClass("active").siblings().removeClass("active"); //按钮点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉

var index=$(this).index(); //获取哪个按钮被点击,也就是找到被点击按钮的索引值

iNow=index;

ul.animate({

"left":-oneWidth*iNow, //注意此处用到left属性,所以ul的样式里面需要设置position: relative; 让ul左移N个图片大小的宽度,N根据被点击的按钮索引值iNow确定

})

});

/*手动点击按钮进行图片轮播代码结束*/

/*定时自动轮播图片代码开始*/

timer=setInterval(function(){ //打开定时器

iNow++; //让图片的索引值次序加1,这样就可以实现顺序轮播图片

if(iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始

iNow=0;

}

showNumber.eq(iNow).trigger("click"); //模拟触发数字按钮的click

},2000); //2000为轮播的时间

/*定时自动轮播图片代码结束*/

/*鼠标悬浮图片停止轮播代码开始*/

slideShow.hover(

function(){

clearInterval(timer);

},function(){

timer=setInterval(function(){ //打开定时器

iNow++; //让图片的索引值次序加1,这样就可以实现顺序轮播图片

if(iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始

iNow=0;

}

showNumber.eq(iNow).trigger("click"); //模拟触发数字按钮的click

},2000); //2000为轮播的时间

}

);

/*鼠标悬浮图片停止轮播代码结束*/

})

从上图可以看出开启定时器的代码是重复的,所以这里可以定义一个自动播放的函数autoPlay()来精简代码,经过精简后的代码如下:

/*定时自动轮播图片代码开始*/

function autoPlay(){

timer=setInterval(function(){ //打开定时器

iNow++; //让图片的索引值次序加1,这样就可以实现顺序轮播图片

if(iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始

iNow=0;

}

showNumber.eq(iNow).trigger("click"); //模拟触发数字按钮的click

},2000); //2000为轮播的时间

}

autoPlay();

/*定时自动轮播图片代码结束*/

定义完成后不要忘记调用这个函数,即autoPlay();

那么最终版的jQuery程序如下:

$(document).ready(function(){

var slideShow=$(".slideShow"), //获取最外层框架的名称

ul=slideShow.find("ul"),

showNumber=slideShow.find(".showNav span"),//获取按钮

oneWidth=slideShow.find("ul li").eq(0).width(); //获取每个图片的宽度

var timer=null; //定时器返回值,主要用于关闭定时器

var iNow=0; //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0

/*手动点击按钮进行图片轮播代码开始*/

showNumber.on("click",function(){ //为每个按钮绑定一个点击事件

$(this).addClass("active").siblings().removeClass("active"); //按钮点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉

var index=$(this).index(); //获取哪个按钮被点击,也就是找到被点击按钮的索引值

iNow=index;

ul.animate({

"left":-oneWidth*iNow, //注意此处用到left属性,所以ul的样式里面需要设置position: relative; 让ul左移N个图片大小的宽度,N根据被点击的按钮索引值iNow确定

})

});

/*手动点击按钮进行图片轮播代码结束*/

/*定时自动轮播图片代码开始*/

function autoPlay(){

timer=setInterval(function(){ //打开定时器

iNow++; //让图片的索引值次序加1,这样就可以实现顺序轮播图片

if(iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始

iNow=0;

}

showNumber.eq(iNow).trigger("click"); //模拟触发数字按钮的click

},2000); //2000为轮播的时间

}

autoPlay();

/*定时自动轮播图片代码结束*/

/*鼠标悬浮图片停止轮播代码开始*/

slideShow.hover(

function(){

clearInterval(timer);

},autoPlay

);

/*鼠标悬浮图片停止轮播代码结束*/

})

以上就是本文的全部内容,大家可以结合下面这两篇文章进行学习:

希望本文所述对大家学习jQuery程序设计有所帮助。

HTML鼠标悬停图片置顶,jquery实现鼠标悬浮停止轮播特效相关推荐

  1. html5导航菜单置顶,jQuery和css3顶部固定导航菜单特效插件

    这是一款非常实用的jQuery和css3顶部固定导航菜单特效插件.我们曾经在很多网站上都看到过这种顶部固定导航菜单特效.Disqus For Websites的导航菜单就是一个很好的例子. HTML结 ...

  2. ajax鼠标悬停,mouseout后触发jQuery Ajax鼠标悬停事件

    这种情况正在发生,因为当鼠标已离开节点时,ajax请求尚未完成.它只会做它的事情,等待服务器的响应,然后显示你的成功函数中定义的工具提示. 解决这个问题的一种方法是拥有一个变量,比如isHoverin ...

  3. html鼠标感应图片,jQuery实现的感应鼠标悬停图片色彩渐显效果

    本文实例讲述了jQuery实现的感应鼠标悬停图片色彩渐显效果.分享给大家供大家参考.具体实现方法如下: 超个性的感应鼠标悬停图片色彩渐显效果 ul.gallery { width: 750px; /* ...

  4. 通过CSS3实现:鼠标悬停图片360度旋转效果

    效果很好玩,代码很简单: 效果: 鼠标放置在图片上:360度顺时针旋转 鼠标离开图片:图片260度逆时针旋转 只要将下面代码拷贝过去,并将图片改成你想要的就可以看到效果 <!doctype ht ...

  5. CSS滤镜实现鼠标悬停图片变黑白(灰色)

    文章目录 前言 一.思路分析 1.样式代码 二.具体实现 1.全部源码 2.效果 结语 前言   这几天在清理电脑文件夹,发现了N年前的一些小demo,顺手记录一下,都是一些比较简单的案例,话不多说了 ...

  6. 基于html5鼠标悬停图片动画展示效果

    分享一款基于html5鼠标悬停图片动画展示效果.里面包含两款不同效果的html5图片展示效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class=" ...

  7. css3鼠标悬停图片特效,图片悬停效果

    css3鼠标悬停图片特效,图片悬停效果 代码如下: <title>css3鼠标悬停图片特效,图片悬停效果源码</title><style>*{box-sizing: ...

  8. html的悬停图片缓慢放大,css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)...

    本篇文章主要给大家介绍当鼠标滑过图片时实现放大效果的具体方法. 当我们在浏览各大电商网站时,最常见的图片动态效果,应该就是鼠标移入图片即悬停在图片时出现放大的效果了.实现这样的动态效果主要是为了突出产 ...

  9. CSS3鼠标悬停图片显示遮罩特效

    transform:translateY(50px); transform:translateY(0px); 这两行代码实现了元素从下向上移动 opacity:0; opacity:0.5; 遮罩是通 ...

最新文章

  1. 做动态图表没有数据?用Python就能获取
  2. R语言glm模型预测(predict)过程及Error in eval(predvars, data, env) 错误原因
  3. 安装完python后怎么使用-安装anaconda后该怎么使用
  4. lua学习笔记之垃圾收集
  5. eclipse实现热部署和热启动
  6. PHP7实战开发简单CMS内容管理系统(8)登录权限控制功能分离
  7. vlist java实现-转
  8. 程序员怎样才能写出一篇好的技术文章
  9. Visual Basic、C# 和 C++ 的数据类型比较(转)
  10. 简单的Spring Boot管理员设置
  11. Python __dict__
  12. psql 时间日期操作符和函数
  13. Labview 做二维码识别
  14. MATLAB-imrotate函数
  15. Make sure ‘SystemCfg‘ is registered using qRegisterMetaType
  16. 手机邮箱怎么注册申请?教你用手机号如何注册电子邮箱地址
  17. 读薄《高性能MySql》(三)索引优化
  18. 抓取网页数据的几种方法
  19. 58、【backtrader股票策略】两资产的配对交易策略(pairs trading strategy)
  20. 析构函数什么时候会调用?

热门文章

  1. Android常用开源框架
  2. iphone如何使用CoreNFC
  3. redis 6379端口telnet不通的解决办法
  4. 使用cloudera manager安装Oozie服务【详细步骤】
  5. 大剑无锋之HashMap全考点
  6. leetcode 476. 数字的补数(Java版)| How to extract ‘k’ bits from a given position in a number
  7. 【PAT甲级 进位相加】1058 A+B in Hogwarts (20 分) C 全部AC
  8. Hive体系结构(三)元数据库与基本操作
  9. mybatis中去除多余的前缀或者后缀
  10. 洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk