js轮播功能 标签自动切换 同页面多轮播js

需要加入jquery 1.43及以上版本

下面还有个简单版,一个页面只支持一个轮播

同页面多轮播js

<div>
    <div class="yt_content">
        <ul class="ml_content_main ml_content_main_word ms__div">
            <div class="cb"></div>
        </ul>
        <ul class="ml_content_main ml_content_main_word ms__div" style="display: none;">
            <div class="cb"></div>
        </ul>
    </div>
    <a href="javascript:void(0);" class="yt_left" onclick="_ms_active_continue('index','-')" id="yjq_prev">上一页</a>
    <a href="javascript:void(0);" class="yt_right" onclick="_ms_active_continue('index','+')" id="yjq_next">下一页</a>
</div>


<div class="yl_main">
    <ul class="ml_content_main ml_content_main_word ms__div2">
        <li><a href="#">连接1</a></li>
    </ul>
    <ul class="ml_content_main ml_content_main_word ms__div2" style="display: none;">
        <li><a href="#">连接1</a></li>
    </ul>
    <ul class="ml_content_main ml_content_main_word ms__div2" style="display: none;">
        <li><a href="#">连接1</a></li>
    </ul>
</div>

 

//执行动画
	/*
	indexName 轮播ID
	className 分组的样式表名称,自定义的不是美工设计的,使用美工的样式名,如果他更新轮播就会失效
	time 每次执行的间隔时间
	prev_id 上一页按钮ID
	next_id 下一页按钮ID
	 */
	function _ms_run(indexName,className,time,prev_id,next_id) {
		if(!window["_ms_"+indexName]||parseInt(window["_ms_"+indexName])<0){//第一次当前显示序号没有值或小于0,则赋值0,
			window["_ms_"+indexName]=0;
		}
		window["_ms_"+indexName] = ""+(parseInt(window["_ms_"+indexName])+1);
		var div=$("."+className);//获取要管理的class组,其他可以自己弄
	    if (window["_ms_"+indexName] > div.length) {//判断如果超过最大序号则调整到第一个
	        window["_ms_"+indexName] = 1;
	    }
	    var index=window["_ms_"+indexName];
		
	    for (var i = 1; i <= div.length; i++) {
	        $(div[i-1]).hide();//隐藏所有容器
	    }	    
	    $(div[index-1]).show();//显示容器
	    if(index==1&&prev_id){//显示第一个时,隐藏上一页图片
	    	$("#"+prev_id).hide();
	    }else if(index!=1&&prev_id){
	    	$("#"+prev_id).show();
	    }
	    if(index==div.length&&next_id){//显示最后一个时,隐藏下一页图片
	    	$("#"+next_id).hide();
	    }else if(index!=div.length&&next_id){
	    	$("#"+next_id).show();
	    }
	    //执行下次动画
	    window["_ms_clear_"+indexName] = setTimeout(function () {
	        _ms_run(indexName,className,time,prev_id,next_id)
	    }, time);
	}
	//暂时清除动画效果
	function _ms_stop(indexName) {
	    clearTimeout(window["_ms_clear_"+indexName]);
	}
	//继续执行动画效果
	function _ms_active_continue(indexName,activeType) {
	    clearTimeout(window["_ms_clear_"+indexName]);
	    if (activeType) {	        
	        if(activeType=="+"){//下一页
	        	//index = num;
	        }else if(activeType=="-"){//上一页
	        	window["_ms_"+indexName] -= 2;
	        }
	        _ms_runset(indexName);
	    } else {
	        window["_ms_clear_"+indexName] = setTimeout(function () {
	            _ms_runset(indexName)
	        }, time);
	    }
	}
	//配置每个轮播属性
	function _ms_runset(keyName){
		/* _ms_run函数说明
		indexName 轮播ID
		className 分组的样式表名称,自定义的不是美工设计的,使用美工的样式名,如果他更新轮播就会失效
		time 每次执行的间隔时间
		prev_id 上一页按钮ID
		next_id 下一页按钮ID
		 */
		switch(keyName){
			case "index":
				_ms_run('index', 'ms__div',30000,'yjq_prev','yjq_next');
				break;
			case "index2":
				_ms_run('index2','ms__div2',10000,'','');
			break;
			case "index3":
				_ms_run('index3','ms__div3',10000,'','');
			break;
		}
	}
	//第一次需要执行的轮播任务
	setTimeout(function(){
		 _ms_runset('index','--');
		 _ms_runset('index2','--');
		 _ms_runset('index3','--');
	},10000);

  

 

简单版,一个页面只能有一个

 <div class="bd" onmouseover="stop()" onmouseleave="a_click()">

<div class="img" id="img_1"><a href="#" target="_blank"><img src="css/img/img.jpg" alt=""><span>图片标题呢</span></a></div>
<div class="img" id="img_2"><a href="#" target="_blank"><img src="css/img/img.jpg" alt=""><span>图片标题呢2</span></a></div>
<div class="img" id="img_3"><a href="#" target="_blank"><img src="css/img/img.jpg" alt=""><span>图片标题呢3</span></a></div>
<div class="numbar">
<a href="javascript:void(0)" id="img_a_1" onclick="a_click(1)">1</a>
<a href="javascript:void(0)" id="img_a_2" onclick="a_click(2)">2</a>
<a href="javascript:void(0)" id="img_a_3" onclick="a_click(3)">3</a>
</div>
</div>

<script type="text/javascript">
var index=0;
var _settimeout;
function run(){
for (var i = 1; i < 4; i++) {
$("#img_"+i).hide();
$("#img_a_"+i).removeClass("active");
}
index+=1;
if(index>3){
index=1;
}
$("#img_"+index).show();
$("#img_a_"+index).addClass("active");
_settimeout=setTimeout(function(){run()},3000);
}
function stop(){
clearTimeout(_settimeout);
}
function a_click(num){
if(num){
clearTimeout(_settimeout);
index=num-1;
run();
}else{
_settimeout=setTimeout(function(){run()},3000);
}

}
$(function(){
run();
})
</script>

 

 

posted on 2015-08-26 09:21  banditi  阅读(2331)  评论(0编辑  收藏  举报