无缝轮播图
来源:互联网 发布:淘宝黄金品级调整箱cdk 编辑:程序博客网 时间:2024/04/27 13:56
超重要动画封装函数:
function animate(ele,target){ clearInterval(ele.timer); var speed = target>ele.offsetLeft?10:-10; ele.timer = setInterval(function () { var val = target - ele.offsetLeft; ele.style.left = ele.offsetLeft + speed + "px"; if(Math.abs(val)<Math.abs(speed)){ ele.style.left = target + "px"; clearInterval(ele.timer); } },10) }
1、获取事件源:
var all = document.getElementById("all"); var screen = all.firstElementChild || all.firstChild; var imgWidth = screen.offsetWidth; var ul = screen.firstElementChild || screen.firstChild; var ol = screen.children[1]; var div = screen.lastElementChild || screen.lastChild; var spanArr = div.children;
var ulNewLi = ul.children[0].cloneNode(true);ul.appendChild(ulNewLi);
for(var i=0;i<ul.children.length-1;i++){ var olNewLi = document.createElement("li"); olNewLi.innerHTML = i+1; ol.appendChild(olNewLi) } var olLiArr = ol.children; olLiArr[0].className = "current";
for(var i=0;i<olLiArr.length;i++){ //自定义属性,把索引值绑定到元素的index属性上 olLiArr[i].index = i; olLiArr[i].onmouseover = function () { //排他思想 for(var j=0;j<olLiArr.length;j++){ olLiArr[j].className = ""; } this.className = "current"; //鼠标放到小的方块上的时候索引值和key以及square同步// key = this.index;// square = this.index; key = square = this.index; //移动盒子 animate(ul,-this.index*imgWidth); } }
var timer = setInterval(autoPlay,1000); //固定向右切换图片 //两个定时器(一个记录图片,一个记录小方块) var key = 0; var square = 0; function autoPlay(){ //通过控制key的自增来模拟图片的索引值,然后移动ul key++; if(key>olLiArr.length){ //图片已经滑动到最后一张,接下来,跳转到第一张,然后在滑动到第二张 ul.style.left = 0; key = 1; } animate(ul,-key*imgWidth); //通过控制square的自增来模拟小方块的索引值,然后点亮盒子 //排他思想做小方块 square++; if(square>olLiArr.length-1){//索引值不能大于等于5,如果等于5,立刻变为0; square = 0; } for(var i=0;i<olLiArr.length;i++){ olLiArr[i].className = ""; } olLiArr[square].className = "current"; } //鼠标放上去清除定时器,移开后在开启定时器 all.onmouseover = function () { div.style.display = "block"; clearInterval(timer); } all.onmouseout = function () { div.style.display = "none"; timer = setInterval(autoPlay,1000); }
//鼠标放上去清除定时器,移开后在开启定时器 all.onmouseover = function () { div.style.display = "block"; clearInterval(timer); } all.onmouseout = function () { div.style.display = "none"; timer = setInterval(autoPlay,1000); }
阅读全文
0 0
- 无缝轮播图
- 无缝轮播图
- 无缝轮播图
- jquery无缝轮播图
- 轮播图--无缝滚动
- jQuery无缝轮播图代码
- 无缝轮播图 源码
- js 轮播图无缝连接
- 无缝切换轮播图
- js无缝轮播图
- 例子---JS无缝轮播图
- juery 无缝轮播图
- js 案例-6 无缝轮播图
- html 无缝轮播图完整代码
- 使用jQuery实现无缝轮播图
- 带有定时器的无缝轮播图
- 纯js实现无缝轮播图
- js编写无缝轮播图效果
- TerraExplorer 6.6 api for javaScript 中的Points无法获取该对象的属性和使用其所持有方法
- qt开发环境
- 字符上犯过的那些错误
- mui.back()返回刷新功能
- day21-Filter
- 无缝轮播图
- BZOJ 1933 [Shoi2007]Bookcase 书柜的尺寸 动态规划
- 单指标时间序列预警模型解决方案
- CentOS 6.5 下 Nginx的反向代理和负载均衡的实现
- 一些基本算法
- 大数据学习[03]:hbase安装配置
- NKOJ-3768 数列操作
- HashMap深度解析(一)
- 数据库表相关