基于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 相关文章推荐
通过js脚本复制网页上的一个表格的不错实现方法
Dec 29 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
Firefox window.close()的使用注意事项
Apr 11 Javascript
预加载css或javascript的js代码
Apr 23 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
jquery修改网页背景颜色通过css方法实现
Jun 06 Javascript
JavaScript版的TwoQueues缓存模型
Dec 29 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
Angular中的$watch方法详解
Sep 18 Javascript
使用Node.js写一个代码生成器的方法步骤
May 10 Javascript
详解react组件通讯方式(多种)
May 06 Javascript
JavaScript enum枚举类型定义及使用方法
May 15 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
用户的详细注册和判断
2006/10/09 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
JSONP之我见
2015/03/24 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
python实现自主查询实时天气
2018/06/22 Python
Python生成器generator用法示例
2018/08/10 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
公司采购主管岗位职责
2014/06/17 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
python glom模块的使用简介
2021/04/13 Python
python基础入门之普通操作与函数(三)
2021/06/13 Python