HTML / Jquery mousemove图像序列

时间:2012-05-12 14:25:57

标签: jquery html

我想制作一个全屏背景的网站。想法是在鼠标位置(动画的页面开始的左侧,动画的页面末尾的右侧)之后播放图像序列。因此,当您左右移动鼠标时,图像序列就像时间轴一样向前和向后播放。

我尝试用HTML中的区域映射来构建它,只是我必须创建240个地图,但坐标变得混乱(全屏/浏览器)。我知道在jquery中制作它会容易得多,但我不知道如何开始。

任何人都可以帮我开始吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

jsFiddle demo

只需使用CSS即可全屏显示。

HTML:

<div id="mmGallery_container">
    <div id="mmGallery">
        // images here
    </div>
</div>

jQuery的:

$(window).load(function(){
    // roXon mmGallery   
    MouseRelXpos = 0;  
    sumW = 0;

    // auto-SET mmGallery_container WIDTH ()
    $('#mmGallery img').each(function(){
        sumW += $(this).width(); // collect all images widths
        $('#mmGallery').width(sumW);//SET gallery WIDTH!
    });        
    // Calculate 'compensation speed': width difference between the gallery container and the gallery
    wDiff1 = $('#mmGallery_container').width();
    wDiff2 = $('#mmGallery').width();
    wDiff = (wDiff2/wDiff1)-1;  //(-1 is for the already existant container width)        
    //#

    $("#mmGallery_container").mousemove(function(e) {
        MouseRelXpos = (e.pageX - this.offsetLeft); // = mouse pos. 'minus' offsetLeft of this element       
    });

    var xSlider = $("#mmGallery");     // cache
    var posX = 0;
    setInterval(function(){
        posX += (- MouseRelXpos - posX) / 14; // 14 = speed (higher val = slower animation)
        xSlider.css({marginLeft:  Math.round(posX * wDiff) +'px' }); // instead 'marginLeft' use 'left' for absolute pos. #mmGallery
    }, 10); // 10 = loop timeout
});