JavaScript图片切换修改:鼠标悬停

JavaScript030

JavaScript图片切换修改:鼠标悬停,第1张

var ismouseover = false //控制是否换图 ---增加的

var number = 3//总图片数量

var num = number-1

var speed = 3000//间隔时间

function amouseover(){

    ismouseover = true

}

function amouseout(){

    ismouseover = false

}

.

.

.

function imgSwitch(){

    if(!ismouseover){

        var imgNow = document.getElementById("switch")

        var iNow = Math.floor(Math.random()*num)

        imgNow.src = imgDyn[iNow][0]

        imgNow.parentNode.href = imgDyn[iNow][1]

        imgDyn.splice(iNow,1)

        if(num>0){

          num = num-1  

        }else{

          num = number -1  

          imgInit()  

        }

    }

    setTimeout(imgSwitch,speed)

}

.

.

.

<a onmouseover='amouseover()' onmouseout='amouseout' href="#" target="_blank"><img id="switch" src="" width="100%"></a>

第一:js进行鼠标悬停事件来处理DOM实际上是不合理的。对于界面交互上能通过css处理的事件就不要用js来处理;

第二:恰好css对于鼠标悬停是有对应的选择器及其处理;

处理方法:如图A:

假设A的id为a,css代码如下:

#a{

    width:100px

    height:36px

    float:left

}

//对于位置的固定可以自行选择处理,当前用float固定。

#a:hover{

    width:200px

}

结果将会如你图中所需要的完成。

如必须用JS处理的话,代码如下:

//既定a的样式已明确:

//html代码:

<span id='a' onmouseover="fc1(this)"

 onmouseout="fc2(this)"></span>

<script>

    function fc1(node){

        node.style.width = '200px'

    }

    function fc2(node){

        node.style.width = '100px'

    }

</script>

通过给标签增加onmousemove或onmouseover事件监听,可以捕获到鼠标悬停于该标签或移动时的事件

通过事件回调可以加以判断,动态去修改图标标签的源地址,以实现你提出的需求

但鼠标悬停和移动是十分高频率的事件,建议配合鼠标按键事件作为限制条件