javascript
  • jquery
  • 2016-05-24 16 views 1 likes 
    1

    Dies ist, wie ich den oberen Rand eines div und Steigerung erkennen/verringern es:Erkennen von Hintergrundbild oberen Rand mit Javascript

    var oldm = $("#bdi").css("margin-top").replace("px", ""); 
    
    var addm = 1; 
    
    $("#bdi").css({ 
    'margin-top': '-='+addm+'px' 
    }) 
    

    Aber ich brauche das gleiche mit Hintergrundposition zu tun.

    1. erfassen die aktuelle Top-Position eines Hintergrundbildes
    2. erhöhen/verringern Sie den oberen Rand eines Hintergrundbildes

    Zum Beispiel:

    background-position: center 5px; 
    

    Wie erkenne ich „5px "und erhöhen/verringern?

    Dank

    +0

    Ich weiß, wie man einen Wert abzurufen, wenn nur ein Wert ist. Aber ich weiß nicht, wie man den seconf-Wert abruft und den zweiten Wert erhöht/verringert. – user1406271

    +0

    Mögliches Duplikat von [javascript oder jquery erhält Hintergrundpositionseigenschaften eines gegebenen Elements und dann +/- dynamisch dazu] (http: // stackoverflow.com/questions/10011286/javascript-or-jquery-get-hintergrund-position-eigenschaften-eines-gegebenen-element-und-t) – rnevius

    +0

    Auch http://stackoverflow.com/questions/12044361/how-do- i-convert-a-css-Hintergrund-Position-Eigenschaft-von-Prozentsätze-in-Pixel – rnevius

    Antwort

    0

    Ab jQuery 1.6, css() akzeptiert relative Werte ähnlich wie .animate(). Relative Werte sind eine Zeichenfolge, die mit + = oder - = beginnt, um den aktuellen Wert zu erhöhen oder zu verringern. Link

    Zum Beispiel wie folgt

    $("div").css("background-position-x", "+=10px"); 
    $("div").css("background-position-Y", "-=10px"); 
    

    Wenn Sie dies auf css Wert Verwendung anderer Betrieb tun wollen

    $("div").css("background-position-x", function(index) { 
        return index * 10; 
    }); 
    

    Sie können Demo unten

    $("#increaseX").click(function(){ 
     
        $("#image").css("background-position-x", "+=10px"); 
     
    }); 
     
    $("#decreaseX").click(function(){ 
     
        $("#image").css("background-position-x", "-=10px"); 
     
    }); 
     
    $("#increaseY").click(function(){ 
     
        $("#image").css("background-position-y", "+=10px"); 
     
    }); 
     
    $("#decreaseY").click(function(){ 
     
        $("#image").css("background-position-y", "-=10px"); 
     
    });
    #image { 
     
        width: 100px; 
     
        height: 100px; 
     
        background-image: url("https://assets.servedby-buysellads.com/p/manage/asset/id/28536"); 
     
        background-position: 0px 0px; 
     
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <div id="image"></div> 
     
    <button id="increaseX">increaseX</button> 
     
    <button id="decreaseX">decreaseX</button> 
     
    <br /> 
     
    <button id="increaseY">increaseY</button> 
     
    <button id="decreaseY">decreaseY</button>
    sehen

    Firefox unterstützt background-position-x und background-position-y nicht. Wenn Sie Ihre Ziel Arbeit in Firefox tun möchten, finden jsfiddle

    Sie können

    +0

    Hintergrund-Position-x, Hintergrund-Position-y funktioniert nicht in Firefox – user1406271

    +0

    @ user1406271 Siehe https://jsfiddle.net/9dkL0pn1/ in Firefox. – Mohammad

    1

    Sie können es background-position-y wie folgt aus erhalten:

    var bgPositionY = ($("#bdi").css('background-position-y')) 
    var addPos = 5; 
    $("#bdi").css({ 
    'background-position-y': '-='+addPos+'px' 
    }) 
    
    für diese

    https://jsfiddle.net/IA7medd/aLkok1n4/

    +0

    Es gibt bgPositionY -> undefined – user1406271

    1

    Sie nicht jQuery benötigen ...

    var el = document.getElementById('bdi'), 
        currentYPosition = getComputedStyle(el)['backgroundPositionY'], 
        increment = 1, 
        newYPosition = 'calc(' + currentYPosition + ' + ' + increment + 'px)'; 
    
    // Set new backgroundPositionY 
    el.style.backgroundPositionY = newYPosition; 
    

    Die obige Verwendung von calc() stellt sicher, dass der Wert richtig inkrementiert wird, ev de wenn ein prozentualer Positionswert verwendet wird.

    0

    Wenn Sie jQuery verwenden, die einfachste Möglichkeit ist, Inline inkrementelle Notation zu verwenden:

    $("#bdi").css('background-position-y', '+=5px'); 
    
    Verwandte Themen