首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

奉送源码,问有关问题

2012-09-28 
奉送源码,问问题js代码。鼠标滑过图片,显示图片大图在网页上,现在存在这样一个问题,网页中只有那几张图片我

奉送源码,问问题
js代码。鼠标滑过图片,显示图片大图在网页上,现在存在这样一个问题,网页中只有那几张图片我想实现这个效果,其他的不想实现,思路是在特定的图片上加一些标记,可是怎么弄js代码啊?对这个不熟。谢谢大家帮忙啦

源码送上

JScript code
<script type="text/javascript">window.onload = function (){ var aLi = document.getElementsByTagName("li"); var oBig = document.getElementById("big"); var oLoading = oBig.getElementsByTagName("div")[0]; var i = 0;  for (i = 0; i < aLi.length; i++) {  aLi[i].index = i;  //鼠标划过, 预加载图片插入容器并显示  aLi[i].onmouseover = function ()  {   var oImg = document.createElement("img");   //图片预加载   var img = new Image();      img.src = oImg.src = aLi[this.index].getElementsByTagName("img")[0].src.replace(".jpg","_big.jpg");   //插入大图片   oBig.appendChild(oImg);   //鼠标移过样式   this.className = "active";   //显示big   oBig.style.display = oLoading.style.display = "block";   //判断大图是否加载成功   img.complete ? oLoading.style.display = "none" : (oImg.onload = function() {oLoading.style.display = "none";})    };  //鼠标移动, 大图容器跟随鼠标移动  aLi[i].onmousemove = function (event)  {   var event = event || window.event;    var iWidth = document.documentElement.offsetWidth - event.clientX;    //设置big的top值   oBig.style.top = event.clientY + 20 + "px";   //设置big的left值, 如果右侧显示区域不够, 大图将在鼠标左侧显示.   oBig.style.left = (iWidth < oBig.offsetWidth + 10 ? event.clientX - oBig.offsetWidth - 10 : event.clientX + 10) + "px";     };  //鼠标离开, 删除大图并隐藏大图容器  aLi[i].onmouseout = function ()  {   this.className = "";   oBig.style.display = "none";   //移除大图片   oBig.removeChild(oBig.lastChild)  } }};</script>


[解决办法]
方法一:
1:给所有需执行效果的li加上一个非标准化的标记,比如:IsPlay='1'
2:循环体绑定事件之前判断是否IsPlay=="1",不是则不绑定事件
方法二:
1:你的老思路,需要执行效果的li中加上一个虚拟样式,比如 isplay
2:鼠标经过时对样式的操作不应该是this.className='active',你这样赋值就完全覆盖样式了,应该是附加active
3:鼠标离开时对样式的操作不应该是this.className='',而应该是移除active样式,以保证结构的完整性

热点排行
Bad Request.