javascript原生小练习(二)--轮播图滚动效果
来源:互联网 发布:excel数据交换 编辑:程序博客网 时间:2024/05/01 03:23
<pre name="code" class="javascript"><script type="text/javascript">function setClass(obj,classname){//alert(obj.className)var reg =new RegExp("(\\s|^)" + classname + "(\\s|$)");//前面有空格或者以classname为开头,后面有空格或者以classname为结尾return {hasClass : obj.className.match(reg), addClass : function(){if(!this.hasClass){obj.className += " "+classname; }}, removeClass : function(){if(this.hasClass){obj.className = obj.className.replace(reg,"");}}}}function scrollFun(id){var scrollObj = document.getElementById(id).getElementsByTagName("div"),init = {timer : null,currentIndex : 0,con : {obj : scrollObj[0].getElementsByTagName("ul")[0],width : 400,len : scrollObj[0].getElementsByTagName("ul")[0].getElementsByTagName("li").length },tit : scrollObj[1].getElementsByTagName("a"),btn : { prev : scrollObj[2].getElementsByTagName("a")[0], next : scrollObj[2].getElementsByTagName("a")[1] },autoplay : false};autoChange();//自动播放for(var i = 0;i < init.tit.length;i++){(function($i){ init.tit.item(i).onclick = function(){show($i); }})(i);}init.btn.prev.onclick = function(){var index = init.currentIndex - 1;if( index >= 0)show(index);}init.btn.next.onclick = function(){var index = init.currentIndex + 1;if( index <= init.con.len - 1)show(index);}function autoChange(){init.autoplay = true;init.timer = setInterval(function(){var index = init.currentIndex + 1;if(index > init.con.len - 1){index = 0;}show(index);},2500);}function show(index){clearInterval(init.timer);var cIndex = index - init.currentIndex,prevLeft = init.currentIndex * init.con.width,nowLeft = index * init.con.width,timer2 = setInterval(function(){if(Math.abs(prevLeft - nowLeft)>= 1){if(cIndex > 0)prevLeft += init.con.width/20;else prevLeft -= init.con.width/20;init.con.obj.style.left = "-" + prevLeft + "px";}else{init.currentIndex = index;init.con.obj.style.left = "-" + nowLeft + "px";for(var j = 0;j < init.tit.length; j++){if(j == init.currentIndex){setClass(init.tit[j],"current").addClass();}else{setClass(init.tit[j],"current").removeClass();}}clearInterval(timer2);if(init.autoplay){autoChange();}}},10);}}window.onload = function(){scrollFun("js-scroll");}</script>
<div id="js-scroll"><div class="scroll-wrap"> <ul class="scroll-list"> <li class="item">1</li> <li class="item">2</li> <li class="item">3</li> <li class="item">4</li> </ul> </div><div class="scroll-tit"> <a class="item current">1</a> <a class="item">2</a> <a class="item">3</a> <a class="item">4</a> </div> <div class="scroll-btn"> <a class="btn prev">上一张</a> <a class="btn next">下一张</a> </div> </div>
<style type="text/css">*{margin:0;padding:0;list-style:none;}#js-scroll{position:relative}.scroll-wrap{width:400px;height:300px;overflow:hidden;position:relative;}.scroll-list{width:20000em;height:100%;position:absolute;left:0;}.scroll-list .item{float:left;width:400px;height:100%;background:#ddd;}.scroll-tit .current{color:red;}</style>
0 0
- javascript原生小练习(二)--轮播图滚动效果
- javascript原生小练习(三)--拼图小游戏
- 原生JavaScript实现手机端循环滚动背景效果
- javascript学习-原生javascript的小特效(简单的运动效果)
- javascript学习-原生javascript的小特效(改变透明度效果)
- javascript学习-原生javascript的小特效(多物体运动效果)
- javascript学习-原生javascript的小特效(多个运动效果整理)
- JavaScript小练习效果之多级菜单
- javascript原生小练习(一)--tab切换、getClassName、addClass、removeClass
- JavaScript练习(二)
- javascript练习(二)
- 原生javascript制作无缝滚动
- 陈华:jquery不转原生javascript实现热点无缝滚动效果代码复用
- 原生javascript移动端滚动到底部加载更多数据效果代码
- Python小练习(二)
- C++小练习(二)
- JavaScript字幕滚动效果
- javascript中滚动效果
- very good
- mysql数据库的增删改查(菜鸟用来总结学习的,高手勿进)
- 开启我的IT博客第一篇
- React 入门总结
- 大数据IMF传奇行动绝密课程第58课:使用Java和Scala在IDE中开发DataFrame实战
- javascript原生小练习(二)--轮播图滚动效果
- CSDN如何转载别人文章
- 页面处理功能--分层思想
- GSS3 - Can you answer these queries III
- 32位与64位系统基本数据类型的字节数
- Linux 之acl好文章收录(一)
- android fragment切换多页时保证切换前的页的状态不被销毁(红色字体)
- 开发一款开源爬虫框架系列(一):分析nutch,scrapy的爬虫设计
- [学习笔记]AngularJS