基于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数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
Apr 07 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
Jun 14 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 Javascript
Angular路由简单学习
Dec 26 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
在create-react-app中使用sass的方法示例
Oct 01 Javascript
jQuery实现高级检索功能
May 28 jQuery
Javascript三种字符串连接方式及性能比较
May 28 Javascript
react实现同页面三级跳转路由布局
Sep 26 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
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
php实现复制移动文件的方法
2015/07/29 PHP
php邮件发送的两种方式
2020/04/28 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
Prototype Selector对象学习
2009/07/23 Javascript
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
js中的this关键字详解
2013/09/25 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
python将回车作为输入内容的实例
2018/06/23 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
python制作简单五子棋游戏
2019/06/18 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
一名女生的自荐信
2013/12/08 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
Python实现天气查询软件
2021/06/07 Python