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

    在这几个图片上加入一个类样式 比如名字就叫sign  然后通过getAttribute("class") == 'sign'这样不可以吗?
      

  2.   

    看你的代码是把每一个LI标签的第一个图片增加了这个功能,而且是给LI标签增加了鼠标滑动的效果,所以你应该过滤LI标签可以给不需要这个效果的LI增加一个CLASS(需要此效果的为空),比如class=nopic,然后在FOR循环的开始增加判断
    if(this.className=='nopic'){return;}
      

  3.   

    我是你的思路,按照你说的我是把需要用js代码的li加了classname,然后再for里面先if判断,是这个classname的执行js代码,结果什么图片的js特效都没有了
      

  4.   

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