基于Jquery实现的一个图片滚动切换


Posted in Javascript onJune 21, 2012

首先还是要引用jquery框架的。

然后开始HTML代码:

<div id="New_zlMimgMv"> 
<div class="imgMvBox"> 
<ul id="imgMvCon"> 
<li><a href="#" title=""><img src="New_zlimgMv.jpg" alt="" /></a></li> 
<li><a href="#" title=""><img src="New_zlimgMv.jpg" alt="" /></a></li> 
<li><a href="#" title=""><img src="New_zlimgMv.jpg" alt="" /></a></li> 
</ul> 
</div> 
<div class="imgMvNum"> 
<a href="javascript:;">专业问答平台</a> 
<a href="javascript:;" style="width:206px;">啊是发达庵圣坊但是分开就</a> 
<a href="javascript:;">同城阿萨德业动</a> 
</div> 
</div>

再然后看看CSS(大家也可以直接看JS的):
ul,img,li,a{ 
border:0; 
margin:0; 
padding:0; 
list-style:none; 
} 
#New_zlMimgMv { 
border: 1px solid #B8B8B8; 
height: 192px; 
margin-bottom: 12px; 
width: 446px; 
} 
#New_zlMimgMv .imgMvBox, #New_zlMimgMv .imgMvBox img { 
height: 160px; 
width: 446px; 
} 
#New_zlMimgMv .imgMvBox { 
overflow: hidden; 
} 
#New_zlMimgMv .imgMvNum a { 
background: #E6E6E6; 
display: block; 
float: left; 
height: 32px; 
line-height: 32px; 
text-align: center; 
text-decoration: none; 
width: 120px; 
color:#282828; 
} 
#New_zlMimgMv .imgMvNum a.changeThis { 
background: #A29F9F; 
color: #FFFFFF; 
}

最后是JQ代码了:
var imgLength=$("#imgMvCon li").length;//获取需滚动元素总数 
var imgHeight=$("#imgMvCon li").height();//获取需滚动元素高度 
var totalHeight=imgLength*imgHeight;//获取需滚动元素总高度 
var mvul=$("#imgMvCon"); 
var positiontop=0;//定义一个初始偏移位置0var linknum=0;//定义一个用于控制按钮切换索引的初始值 
var mvTimer;//设置一个定时器 
mvul.parent().css({"position":"relative"})//设置容器的CSS 
mvul.css({"position":"absolute"});//同上 
$(".imgMvNum a").eq(linknum).addClass("changeThis");//给第一个按钮添加样式 
function imgMv(){ 
if(imgLength>1)//如果不是一张图片的话就执行下面的 
{ 
positiontop=positiontop+imgHeight;//没执行一次便宜位置加一次高度 
if(positiontop==totalHeight)//如果偏移值等于总高度将偏移值设回0 
{ 
positiontop=0; 
} 
linknum++;//运行一次,用于控制按钮切换的索引加1 
if(linknum>=imgLength)//如果索引大于或等于滚动元素总长度,将索引设回0 
{ 
linknum=0; 
} 
mvul.animate({top:-(linknum*imgHeight)},400);//用animate属性实现滚动,'linknum*imgHeight'方便和按钮同步 
$(".imgMvNum a").removeClass("changeThis");//移除样式 
$(".imgMvNum a").eq(linknum).addClass("changeThis");//添加样式 
} 
} 
function startMv(){ 
mvTimer=setInterval(imgMv,4000);//定时器函数 
} 
startMv();//运行定时器 
$(".imgMvNum a").each(function(){//遍历按钮 
$(this).mouseover(function(){//鼠标经过按钮 
clearInterval(mvTimer);//清除定时器 
linknum=$(this).index();//鼠标经过按钮将linknum设置为当前按钮索引 
$(".imgMvNum a").removeClass("changeThis"); 
$(this).addClass("changeThis"); 
mvul.animate({top:-(linknum*imgHeight)},300);//用animate属性实现滚动,'linknum*imgHeight'方便和按钮同步 
}).mouseout(function(){ 
startMv();//鼠标移出再次执行定时器 
}); 
});

每句都注释清楚了哈。这里只是简单的写了个简单的向上效果,代码可能也不优化。主要是给大家参考和提供思路。
大家可以把这些效果封装成插件,再编写一些其它的方向或效果。
看下效果(这个文章里面样式没法完全放进来,大家可以复制到自己电脑)
Javascript 相关文章推荐
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 Javascript
详解Angular2中Input和Output用法及示例
May 21 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
vue实现在表格里,取每行的id的方法
Mar 09 Javascript
vue增加强缓存和版本号的实现方法
May 01 Javascript
JavaScript Reflect Metadata实现详解
Dec 12 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 Javascript
js实现扫雷源代码
Nov 27 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
Jun 20 #Javascript
javascript学习笔记(十九) 节点的操作实现代码
Jun 20 #Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 #Javascript
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 #Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 #Javascript
javascript学习笔记(十五) js间歇调用和超时调用
Jun 20 #Javascript
javascript学习笔记(十四) window对象使用介绍
Jun 20 #Javascript
You might like
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
php报错502badgateway解决方法
2019/10/11 PHP
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python操作excel让工作自动化
2019/08/09 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
python实现图片横向和纵向拼接
2020/03/05 Python
基于Python正确读取资源文件
2020/09/14 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
四年级科学教学反思
2014/02/10 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
爱晚亭导游词
2015/02/09 职场文书
个人维稳承诺书
2015/05/04 职场文书
道歉的话怎么说
2015/05/12 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
学校教学管理制度
2015/08/06 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript