【问题标题】:Javascript background-position on large screen in ChromeChrome中大屏幕上的Javascript背景位置
【发布时间】:2014-04-08 19:44:58
【问题描述】:

您能否在大屏幕的谷歌浏览器上看一下这个主页(问题出现在 1870px 和 1920px 之间): http://theatredulamparo.fr

实际上,当您从左到右滚动悬停窗口时,背景位置会发生变化以显示精灵中包含的图片并打开大顶门,但在这种情况下,它也会从上到下移动,即不是预期的。我有点麻烦,因为这个问题在其他浏览器上没有显示(Safari 和 Firefox 都可以)。

有什么想法吗?

这是我的代码:

    var portion = 0;
    var numPortion = 0;
    var chemin = "";
    var largeur =0;
    var hauteur = 0;
    var position = 0;
    var entrer2 = null;

    function Initwrap(){
       largeur = $('#wrapperbg').width();
       hauteur = (largeur*0.590277778)-1;
       $('#wrapperbg').height(hauteur);
    }

    // Changer le background position du sprite
    function BgAnim(hauteur, position){
      $('#wrapperbg').css({"background-position": "0 -"+position+"px", "height":hauteur});
    }

    function Entrer(chemin, numPortion, hauteur){
        //Cacher les boutons
        $('.callto').hide();
        //Lancer l'animation d'entrée dans chapiteau
        entrer2 = setInterval(function(){
    if (numPortion<=20){
        position = (hauteur+1)*numPortion;
        BgAnim(hauteur, position);
        numPortion++;
    } else {
        clearInterval(entrer2);
        window.location=chemin;
    }
}, 100);
    }


    $(document).ready(function(){

Initwrap();



    //lorsque la souris se déplace dans la page
    $("body").mousemove(function(e){

        Initwrap();

        portion = $('body').width()/9; //découpage écran en 12 portions (12 images)
        numPortion = Math.floor(e.pageX/portion); //la portion où se trouve la souris

        position = (hauteur+1)*numPortion;

        // lorsque la souris sort du cadre
        if(numPortion>8){
            position=8;
        }
        if(numPortion<0){
            position=0;
        }

        if(largeur > 1024){
            BgAnim(hauteur, position); //lance l'effet de survol
        }
    });


    //Au click sur un call2action
    $('#callto1').click(function(e){
        if(largeur > 1024){
            e.preventDefault();
            //chemin ='tpl_actu_fiche.html';
            chemin ='index.php?id=2';
            $("body").unbind('mousemove');
            Entrer(chemin, numPortion, hauteur);
        }
    });

    $('#callto2').click(function(e){
        if(largeur > 1024){
            e.preventDefault();
            //chemin ='tpl_contact.html';
            chemin ='index.php?id=30';
            $("body").unbind('mousemove');
            Entrer(chemin, numPortion, hauteur);
        }
    });



    });

    $(window).resize(function(){
        portion = 0;
        numPortion = 0;
        chemin = "";
        position = 0;
        entrer2 = null;
        largeur = $('#wrapperbg').width();

        Initwrap();

        if(largeur > 1024){
            BgAnim(hauteur, position); //lance l'effet de survol
        }

    });

【问题讨论】:

    标签: javascript sprite background-position


    【解决方案1】:

    我能够通过使用 background-size:cover 使其进入工作状态

    #wrapperbg{
      position: relative;
      top: 0;
      left: 0;
      width: 100%;
      overflow: hidden;
      -moz-background-size: cover;
      background-size: cover;
      margin: 0;
      padding: 0;
      background-image: url('../images/animation/spritechap.jpg');
    }
    

    【讨论】:

    • 没问题!如果这是正确的答案,你介意接受它是正确的吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多