开发者

onmouseover stop slideshow help

This is a function for a slideshow,onmouseover i want it to stop. Instead of stopping the slideshow onmouseover, it speeds up?? How can i correct this to stop onmouseover?

<body onload="nextslide();">

function nextslide() {
    // Hide current slide
    var object = document.getElementById('slide' + curr开发者_如何学Goent); //e.g. slide1
    object.style.display = 'none';

    // Show next slide, if last, loop back to front
    if (current == last) {
        current = 1;
    } else {
        current++;
    }

    object = document.getElementById('slide' + current);
    object.style.display = 'block';
    var timeout = setTimeout(nextslide, 2500);

    object.onmouseover = function(){
        clearTimeout( timeout );
    }
    object.onmouseout = nextslide;
}


I tried your code and the only problem I can see is on "onmouseout" there is an immediate transition to next slide. I would change that line like this:

object.onmouseout = function() {
    timeout = setTimeout(nextslide, 2500);
}

I disagree with Jared, "timeout" is defined there because you are using nested functions and inner functions have access to outer functions scope. You should never omit var when defining variables.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜