焦点图片轮播代码
来源:互联网 发布:淘宝网完美芦荟胶 编辑:程序博客网 时间:2024/05/18 01:37
最近学习了一下通过js来控制焦点图片轮播,学习的目的是领悟代码实现过程和实现思路,以下附上代码,可以学习学习领悟一下:
HTML文件mytest.html:
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>测试焦点轮播图片</title> <link rel="stylesheet" href="css/mytest.css" /> <script type="text/javascript" src="js/mytest.js" ></script> </head> <body> <div class="mydiv" id="mydiv"> <div class="mydiv01"> <ul> <li><img src="images/1.jpg" width="500" height="200" /></li> <li><img src="images/2.jpg" width="500" height="200" /></li> <li><img src="images/3.jpg" width="500" height="200" /></li> <li><img src="images/4.jpg" width="500" height="200" /></li> <li><img src="images/5.jpg" width="500" height="200" /></li> </ul> </div> <ol> </ol> </div> </body></html>
样式文件mytest.css:
*{padding: 0;margin: 0;list-style: none;border: 0;}body{background: #FFFF00;}/******************/.mydiv{width: 500px; height: 200px; padding: 7px;border: 1px solid red; margin: 100px auto; position: relative;}.mydiv01{ width: 500px; height: 200px; overflow: hidden; position: relative; }.mydiv01 ul{ position: absolute; left: 0px; top: 0; width: 3000px;}.mydiv01 ul li{ width: 500px; height: 200px; overflow: hidden; float: left;} .mydiv ol{ position: absolute; right: 10px; bottom: 10px; line-height: 20px;}.mydiv ol li{ float: left; width: 15px; height: 15px; background: #fff; margin-left: 5px; cursor: pointer; font-size: 10px; font-family: verdana; line-height: 15px; border-radius: 15px; text-align: center;}.mydiv ol li.current{ background: yellow;}
javascript脚本文件mytest.js:
//页面加载时要执行的函数window.onload= function(){ //获取大盒子mydiv var mydiv=document.getElementById("mydiv"); //获取第一个盒子的UL节点 var ul=mydiv.children[0].children[0]; //获取UL中的所有子节点 var ullis=ul.children; //克隆ul第一个字节点到最后 ul.appendChild(ullis[0].cloneNode(true)); //获取大盒子mydiv第二个子节点 var ol=mydiv.children[1]; //在ol下创建li子节点 for(var i=0;i<ullis.length-1;i++){ //创建li节点元素 var li=document.createElement("li") //为创建的节点赋值 li.innerHTML=i+1; //将创建的子节点作为ol的子节点 ol.appendChild(li); } //获取ol中所有子节点 var ollis=ol.children; //初始化第一个子节点类选择器为current ollis[0].className="current"; //开始动画,遍历所有ol子节点并为其赋值特定属性 for(var j=0;j<ollis.length;j++){ //为每个li元素赋值索引 ollis[j].index=j; //为每个li元素添加鼠标事件 ollis[j].onmouseover=function(){ //清除所有类选择器 for(var k=0;k<ollis.length;k++){ ollis[k].className=""; } //设置当前元素类选择器 this.className="current"; //调用动画函数 animate(ul,-this.index*ullis[0].offsetWidth); //鼠标经过key square要等于当前索引(key:用来控制图片的键,square:用来控制的小方块) key=square=this.index; } } //定时器部分 var timer=0; //定义控制图片的键 var key=0; //定义控制小方块的键 var square=0; //设置定时器的时间间隔为3秒执行一次指定函数 timer=setInterval(autoplay,3000); //定义自动播放函数 function autoplay(){ //图片控制部分 key++; if(key>ullis.length-1){ ul.style.left=0; //第6张图片是第一张,所以从第2开始重新播放 key=1; } //调用动画函数 animate(ul,-key*ullis[0].offsetWidth); //小方块控制部分 square++; square=square>ollis.length-1? 0 :square; for(var i=0;i<ollis.length-1;i++){ ollis[i].className=""; } ollis[square].className="current"; } //鼠标经过时停止定时器 mydiv.onmouseover=function(){ //清除定时器 clearInterval(timer); } //鼠标离开时启用定时器 mydiv.onmouseout=function(){ //设置定时器 timer=setInterval(autoplay,3000) }}//obj:做动画的对象,target:当前动画相对于下一个动画的距离function animate(obj,target){ //开启定时器之前把前面的定时器清楚掉 clearInterval(obj.timer); var speed=obj.offsetLeft<target? 15 :-15; obj.timer=setInterval(function(){ //若result为0则说明完全相等 var result=target-obj.offsetLeft; //动画原理 obj.style.left=obj.offsetLeft+speed+"px"; if(Math.abs(result)<=15){ //抖动 obj.style.left=target+"px"; clearInterval(obj.timer); } },10)}
以下是实现效果截图:
0 0
- 焦点图片轮播代码
- 图片焦点轮播
- 自适应图片宽度的jQuery焦点幻灯轮播代码
- 图片焦点轮播效果
- jQuery图片轮播(焦点图)插件
- 图片轮播代码
- 图片轮播代码
- 淘宝图片轮播代码
- 图片轮播代码1
- jquery图片轮播代码
- JavaScript图片轮播代码
- 基于JQuery的实现图片轮播效果(焦点图)
- 一个个页面中多个焦点图片轮播的实现
- CSS快速制作图片轮播的焦点
- JavaScript面向对象焦点图片轮播banner
- myFocus制作网页焦点图 实现图片轮播效果
- jq实现图片轮播:圆形焦点+左右控制+自动轮播
- 图片轮播的js代码
- 多线程
- 指针和引用的区别
- Allergo焊盘的制作 相关知识(1)
- 11.14
- 批量替换文件内容的方法
- 焦点图片轮播代码
- JavaCC jjtTree node scope action
- JAVA入门基础详解之一
- nginx安装
- redis 数据结构
- 2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 J
- 单片机软定时器
- 如何获取自定义属性
- parse generator生成c++文件