原代码只可以点击切换,要求原代码中的参数不能变,实现以下功能:
1、增加个每5秒自动切换。
2、如果鼠标移动到某导航上时等待0.5秒再切换到该导航(原因:避免鼠标移动到上面就切换,体验不好)
以下是代码:
<li onClick="changeaweb(this,'1')" class ="a1">导航A</li>
<li onClick="changeaweb(this,'2')" class ="b1">导航B</li>
<li onClick="changeaweb(this,'3')" class ="c1">导航C</li>
<li onClick="changeaweb(this,'4')" class ="d1">导航D</li><div id="web1" style="display:block;"></div>
<div id="web2" style="display:none;"></div>
<div id="web3" style="display:none;"></div>
<div id="web4" style="display:none;"></div><script>
function changeaweb(srcObj, tid) {
var tabList = srcObj.parentNode.getElementsByTagName("li");
if (srcObj.className == 'a1') return;
for (var i = 0; i < tabList.length; i++) {
if (tabList[i].className == 'a1')
tabList[i].className = 'b1';
tabList[i].className = 'c1';
tabList[i].className = 'd1';
document.getElementById("web" + (i + 1)).style.display = 'none';
}
document.getElementById("web" + tid).style.display = '';
srcObj.className = 'a1';
return false;
}
</script>
给个参考的,因不可输入网址。百度搜索:宏基 如果能做出这个效果感谢万分JavaScript切换
1、增加个每5秒自动切换。
2、如果鼠标移动到某导航上时等待0.5秒再切换到该导航(原因:避免鼠标移动到上面就切换,体验不好)
以下是代码:
<li onClick="changeaweb(this,'1')" class ="a1">导航A</li>
<li onClick="changeaweb(this,'2')" class ="b1">导航B</li>
<li onClick="changeaweb(this,'3')" class ="c1">导航C</li>
<li onClick="changeaweb(this,'4')" class ="d1">导航D</li><div id="web1" style="display:block;"></div>
<div id="web2" style="display:none;"></div>
<div id="web3" style="display:none;"></div>
<div id="web4" style="display:none;"></div><script>
function changeaweb(srcObj, tid) {
var tabList = srcObj.parentNode.getElementsByTagName("li");
if (srcObj.className == 'a1') return;
for (var i = 0; i < tabList.length; i++) {
if (tabList[i].className == 'a1')
tabList[i].className = 'b1';
tabList[i].className = 'c1';
tabList[i].className = 'd1';
document.getElementById("web" + (i + 1)).style.display = 'none';
}
document.getElementById("web" + tid).style.display = '';
srcObj.className = 'a1';
return false;
}
</script>
给个参考的,因不可输入网址。百度搜索:宏基 如果能做出这个效果感谢万分JavaScript切换
解决方案 »
- jquery中如何选择触发事件
- 请问prototype1。4中的ajax对象有没有那个方法可以停止还未完成的异步调用呢?譬如XMLHttpRequest 的abort方法啊
- 怎么使文本框只可以删,不可写?
- js web excel 0.56 改进版
- 问一个问题:如何精简以下这段脚本,本着优化的态度,请求帮忙
- javascrip语言如何将一个字符型数据转换成日期型数据?日期型数据可以实现data1=data1+1吗?
- HTML 的 select 框的双击事件怎么做?
- 谁知道__doPostBack()是何含义?
- 简单问题,请帮忙
- 求助 高人帮忙解下Js加密文件。。。。
- 如何让这种板块 在页面中多出现几次 并且互不干扰。
- 正则求助。。
<script type="text/javascript">
function changeaweb(srcObj, tid) {
var tabList = srcObj.parentNode.getElementsByTagName("li");
if (srcObj.className == 'a1') return;
for (var i = 0; i < tabList.length; i++) {
if (tabList[i].className == 'a1')
tabList[i].className = 'b1';
tabList[i].className = 'c1';
tabList[i].className = 'd1';
document.getElementById("web" + (i + 1)).style.display = 'none';
}
document.getElementById("web" + tid).style.display = '';
srcObj.className = 'a1';
return false;
}
var obj = document.getElementById("ul").getElementsByTagName("li");
var timeout;
for (var i = 0; i < obj.length; i++) {
(function(i) {
obj[i].onmouseover = function() {
var obj = this;
clearTimeout(timeout);
timeout = setTimeout(function() {
changeaweb(obj, i + 1);
}, 500);
};
obj[i].onmouseout = function() {
clearTimeout(timeout);
};
})(i);
}
</script>
function changeaweb(srcObj, tid) {
var tabList = srcObj.parentNode.getElementsByTagName("li");
if (srcObj.className == 'a1') return;
for (var i = 0; i < tabList.length; i++) {
if (tabList[i].className == 'a1')
tabList[i].className = 'b1';
tabList[i].className = 'c1';
tabList[i].className = 'd1';
document.getElementById("web" + (i + 1)).style.display = 'none';
}
document.getElementById("web" + tid).style.display = '';
srcObj.className = 'a1';
return false;
} var tabs = {
liList: null,
autoTime: 1000,
mouseTime: 500,
timeObj: null,
index: 0,
doInit: function() {
this.liList = document.getElementById("ul").getElementsByTagName("li");
this.bindEvent();
this.auto();
},
bindEvent: function() {
for (var i = 0; i < this.liList.length; i++) {
(function(i, tab) {
tab.liList[i].onmouseover = function() {
var obj = this;
clearTimeout(tab.timeObj);
tab.timeObj = setTimeout(function() {
changeaweb(obj, i + 1);
tab.index = i;
}, tab.mouseTime);
};
tab.liList[i].onmouseout = function() {
clearTimeout(tab.timeObj);
tab.auto();
};
})(i, this);
}
},
auto: function(srcObj, tid) {
(function(tab) {
tab.timeObj = setInterval(function() {
tab.index++;
tab.index = tab.index < tab.liList.length ? tab.index : 0;
changeaweb(tab.liList[tab.index], tab.index + 1);
}, tab.autoTime);
})(this);
}
};
tabs.doInit();
</script>
<li onClick="changeaweb(this,'2')" class ="b1">导航B</li>
<li onClick="changeaweb(this,'3')" class ="c1">导航C</li>
<li onClick="changeaweb(this,'4')" class ="d1">导航D</li><div id="web1" style="display:block;"></div>
<div id="web2" style="display:none;"></div>
<div id="web3" style="display:none;"></div>
<div id="web4" style="display:none;"></div>