原生javascript实现图片轮播效果
2016-06-08 17:17
936 查看
最近学习javascript实现动画效果,就用原生的javascript代码实现了图片轮播的效果,供大家参考学习。
1.首先设置图片轮播的地方(id=banner)
2.然后是一个图片组
3.然后是一个按钮层,用来定位图片组( ul-->li)
4.最后为按钮层设置背景以及显示图片的alt信息
至于CSS样式,附件源码中已给出。接着介绍封装的函数,直接看源码
1.首先设置图片轮播的地方(id=banner)
2.然后是一个图片组
3.然后是一个按钮层,用来定位图片组( ul-->li)
4.最后为按钮层设置背景以及显示图片的alt信息
可以先构造出html结构
<span style="font-family:SimSun;"><div id="main"> <div id="banner"> <img src="images/T_1.png"alt="第一张图" /> <img src="images/T_2.png"alt="第二张图" /> <img src="images/T_3.png"alt="第三张图" /> <img src="images/T_4.png"alt="第四张图" /> <img src="images/T_5.png"alt="第五张图" /> <img src="images/T_6.png"alt="第六张图" /> <ul> <li>●</li> <li>●</li> <li>●</li> <li>●</li> <li>●</li> <li>●</li> </ul> <span> </span> <strong> </strong> </div> </div></span>
至于CSS样式,附件源码中已给出。接着介绍封装的函数,直接看源码
//获取某组节点的数量 Base.prototype.length = function () { return this.elements.length; }; //获取某一个节点的属性 ****** Base.prototype.attr = function (attr) { return this.elements[0][attr]; }; //获取某一个节点在整个节点组中是第几个索引 ****** Base.prototype.index = function () { var children = this.elements[0].parentNode.children; for (var i = 0; i < children.length; i ++) { if (this.elements[0] == children[i]) return i; } }; //获取某一个节点,并且Base对象 ******* Base.prototype.eq = function (num) { var element = this.elements[num]; this.elements = []; this.elements[0] = element; return this; }; //设置CSS Base.prototype.css = function (attr, value) { for (var i = 0; i < this.elements.length; i ++) { if (arguments.length == 1) { return getStyle(this.elements[i], attr); } this.elements[i].style[attr] = value; } return this; }; //设置innerHTML Base.prototype.html = function (str) { for (var i = 0; i < this.elements.length; i ++) { if (arguments.length == 0) { return this.elements[i].innerHTML; } this.elements[i].innerHTML = str; } return this; }; //设置鼠标移入移出方法 ****** Base.prototype.hover = function (over, out) { for (var i = 0; i < this.elements.length; i ++) { addEvent(this.elements[i], 'mouseover', over); addEvent(this.elements[i], 'mouseout', out); } return this; }; //设置显示 Base.prototype.show = function () { for (var i = 0; i < this.elements.length; i ++) { this.elements[i].style.display = 'block'; } return this; }; //设置隐藏 Base.prototype.hide = function () { for (var i = 0; i < this.elements.length; i ++) { this.elements[i].style.display = 'none'; } return this; };原生的javascript实现图片轮播完整代码,有部分注释,其中有些注释的部分是自己的调试过程。
$(function () { //轮播器初始化 $('banner img').css('display','none'); //alert(); $('#banner img').eq(0).css('display', 'block'); $('#banner ul li').eq(0).css('color', '#333'); //$('#banner strong').html('asfsdc'); $('#banner strong').html($('#banner img').eq(0).attr('alt')); //获取alt的属性值 //轮播器计数器 var banner_index = 1; //自动轮播 var banner_timer = setInterval(banner_fn,1000); //手动轮播器 $('banner ul li').hover(function () { //var num = $(this).index(); // alert(num); clearInterval(banner_timer); //清理计时器,停止播放 // alert($(this).css('color')); banner(this); },function () { banner_index = $(this).index() + 1; banner_timer = setInterval(banner_fn,1000); }); function banner(obj) { $('#banner img').css('display', 'none'); $('#banner img').eq($(obj).index()).css('display', 'block'); $('#banner ul li').css('color', '#999'); $(obj).css('color', '#333'); $('#banner strong').html($('#banner img').eq($(obj).index()).attr('alt')); } function banner_fn() { if (banner_index >= $('#banner ul li').length()) banner_index = 0; banner($('#banner ul li').eq(banner_index).first()); //传递本体 banner_index++; } }); 上张效果图<img src="http://img.blog.csdn.net/20160610121559382?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> 总结;目前实现了自动轮播和手动暂停的功能,接下来的想法是设置滚动动画功能,并可以计入上下轮播选择,持续更新中..... 源码地址:http://pan.baidu.com/s/1eSg8rr8
相关文章推荐
- Json.net实现方便的Json转C#(dynamic动态类型)对象
- 利用JS禁用键盘后退键,防止浏览器单击后退键后退
- WdatePicker.js日期控件的日期设置问题
- ajax+json+ashx实现一个页面多个tab的分页
- 有关JSP页面导出EXCEL文件
- 浅谈几种常用的JS类定义方法
- js、jq实现省市级联
- js、jq、实现全国省市级联
- 注意系统的lib目录下不要有servlet-api.jar和jsp-api.jar
- 分享Grunt.js配置: watch + liveReload 实时监测文件变化自动刷新浏览器
- 浅谈javascript中的constructor
- Jsoup demo
- js页面限时任务执行
- js定义类的几种方法(推荐)
- JavaScript实现35选7并记录历史状态
- JavaScript——正则表达式
- ExtJs6 发送ajax如何动态改变发送参数的参数名的解决方法
- JS去除特殊字符
- js for循环 遍历数组 遍历对象属性
- JS检查是否为任意数(实数),正数,整数,正整数