基于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 相关文章推荐
Javascript算符的优先级介绍
Mar 20 Javascript
利用JS进行图片的切换即特效展示图片
Dec 03 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
Jun 01 Javascript
js实现tab切换效果实例
Sep 16 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
非常实用的js验证框架实现源码 附原理方法
Jun 08 Javascript
jQuery获取select选中的option的value值实现方法
Aug 29 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
canvas绘制环形进度条
Feb 23 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
Vue拖拽组件列表实现动态页面配置功能
Jun 17 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
优化使用mysql存储session的php代码
2008/01/10 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
Python中的闭包总结
2014/09/18 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
学生信息管理系统python版
2018/10/17 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
Python如何在bool函数中取值
2020/09/21 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
美术专业自荐信
2014/07/07 职场文书
房屋租房协议书范本
2014/12/04 职场文书
社团招新宣传语
2015/07/13 职场文书
中秋节感想
2015/08/10 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle