Programim dhe zhvillim, javascript, python, php, html

A ka ndonjë mënyrë për të lexuar gjerësinë natyrale të një imazhi me jquery?

Unë u përpoqa me diçka të tillë:

var Height = $(this).naturalHeight;

Por nuk funksionon. A ka ndonjë mënyrë për ta bërë këtë

greez

02.12.2009

  • $(this)[0].naturalHeight; por mbështetet IE9+, shikoni në disa përgjigje më poshtë për një mbështetje më të gjerë të shfletuesit 13.10.2014

Përgjigjet:


1

Unë përdor vetitë vendase të javascript pas aplikimit të jQuery dhe më pas heqjes së jQuery

.Gjerësia natyrore / .lartësia natyrore

Në një objekt jQuery që përdor

var width = this.naturalWidth; 
var height = this.naturalHeight;

or

var width = $("selector").get(0).naturalWidth; 
var height = $("selector").get(0).naturalHeight;

nëse nuk zgjidhet asnjë objekt jQuery.

Me get(0) në një objekt jQuery ju mund të përdorni DOM-in e lidhur element. Në elementin vendas DOM mund të punoni me kodin vendas javascript (këtu hyni në atributin nativ javascript .naturalWidth)

05.05.2014
  • Unë përdor atributet vendase javascript duhet të rishikohen për të thënë se përdor vetitë vendase të javascript pas aplikimit të jQuery dhe më pas heqjes së jQuery. Merrni parasysh se çfarë po bëni kur shkruani $(this). this është një nyje img të cilën po e ktheni në një objekt jQuery. Pastaj, $(this)[0] dhe $(this).get(0) ju marrin nyjen origjinale img. Nuk ka nevojë për ndërmjetësin e jQuery. Thjesht përdorni var width = this.naturalWidth; dhe në mënyrë të ngjashme për lartësinë. Shembulli juaj i dytë me $("selector").get(0) është i mirë nëse preferoni të përdorni jQuery për të gjetur një nyje për ju. 22.12.2018

  • 2

    Më duket sikur zgjidhja e pranuar modifikon pamjen e objektit. Herë pas here, jQuery është paksa shumë i dobishëm dhe ju duhet t'i tregoni që të largohet nga rruga juaj. Nëse dëshironi të përdorni naturalWidth ose naturalHeight, atëherë thjesht përdorni atë që ekziston tashmë duke e kthyer objektin jQuery në një referencë të elementit vendas të shfletuesit.

    var Height = document.getElementById($(this).attr("id")).naturalHeight;
    
    15.07.2010
  • Pse jo thjesht this.naturalHeight? 16.06.2011
  • Jam dakord me ThiefMaster. Kjo përgjigje është kod i tmerrshëm. this.naturalHeight është shumë më i shpejtë, më kompakt dhe funksionon në të gjitha objektet, jo vetëm në objektet me një ID. 20.12.2011
  • Nëse po përdorni tashmë jQuery, atëherë $(this)[0] është shembulli i HTMLElement, ose $(this).get(0). Secila prej tyre është më e mirë se përsëritja e thirrjes getElementById, pasi jQuery e ka bërë këtë për ju. Ka disa atribute (në përgjithësi jo ndër-shfletues) të aksesueshëm vetëm nga klasa vendase HTMLElement në vend të shembullit të mbështjellë me jquery. 06.05.2012
  • $('përzgjedhës')[0].lartësia natyrore 09.08.2012
  • përgjigje e dobët, shikoni komentet e tjera dhe përgjigjet e sakta nga Boss Ninja. Shënim: ne shkruajmë $('selector')[0] sepse e konvertojmë elementin jQuery në një element dom (kështu që ne shtojmë këtë [0]), shihni stackoverflow.com/questions/2441535/ 13.10.2014

  • 3

    Një mënyrë për të marrë dimensionet e një imazhi është të ngarkoni në mënyrë dinamike një kopje të imazhit duke përdorur javascript dhe të merrni përmasat e tij:

    // preload the image
    var height, width = '';
    var img = new Image();
    var imgSrc = '/path/to/image.jpg';
    
    $(img).load(function () {
        alert('height: ' + img.height);
        alert('width: ' + img.width);
        // garbage collect img
        delete img;
    }).error(function () {
        // image couldnt be loaded
        alert('An error occurred and your image could not be loaded.  Please try again.');
    }).attr({ src: imgSrc });
    
    02.12.2009

    4

    Këtu është një shembull i një funksioni jQuery i cili funksionon në versionet më të vjetra të IE edhe për imazhe të mëdha.

    /*
     * NaturalWith calculation function. It has to be async, because sometimes(e.g. for IE) it needs to wait for already cached image to load.
     * @param onNaturalWidthDefined callback(img) to be notified when naturalWidth is determined.
     */
    jQuery.fn.calculateNaturalWidth = function(onNaturalWidthDefined) {
        var img = this[0];
        var naturalWidth = img.naturalWidth;
        if (naturalWidth) {
            onNaturalWidthDefined(img);
        } else { //No naturalWidth attribute in IE<9 - calculate it manually.
            var newImg = new Image();
            newImg.src = img.src;
            //Wait for image to load
            if (newImg.complete) {
                img.naturalWidth = newImg.width;
                onNaturalWidthDefined(img);
            } else {
                $(newImg).load(function() {img.naturalWidth=newImg.width; onNaturalWidthDefined(img)});
            }
        }
    };
    

    Përdorimi është i thjeshtë:

    $(img).calculateNaturalWidth(function(img) { alert(img.naturalWidth)});
    
    16.01.2012

    5

    Më e mira që mund të bëni është të fshehni një imazh pa vendosur gjerësinë dhe lartësinë dhe të përdorni burimin e imazhit për këtë imazh si imazhin tuaj origjinal. Pastaj llogarisni dimensionin e këtij imazhi të fshehur.

    Përndryshe, mund të llogarisni dimensionin fizik në anën e serverit dhe ta kaloni atë në një element të fshehur në faqe dhe të merrni madhësinë nga vlera e atij elementi të fshehur.

    02.12.2009

    6

    Thjesht do të provoja

    var width = $("img", this).css('width', 'auto').width();
    var height= $("img", this).css('height', 'auto').height();
    

    Në thelb është llogaritja për naturalWidth dhe naturalHeight gjithsesi

    18.07.2011

    7

    Burimi Nga KETU

    Këtu është një shtojcë e shkurtër jQuery (çdo version) që shton dy metoda: naturalWidth () dhe naturalHeight (). Ai përdor degëzim për të përcaktuar nëse gjerësia natyrale dhe lartësia natyrale mbështeten nga shfletuesi. Nëse mbështetet, metoda thjesht bëhet një marrës për vetinë naturalWidth ose naturalHeight. Nëse nuk mbështetet, metoda krijon një element të ri imazhi të pa stiluar dhe kthen gjerësinë dhe lartësinë aktuale të atij elementi.

      // adds .naturalWidth() and .naturalHeight() methods to jQuery
      // for retreaving a normalized naturalWidth and naturalHeight.
      (function($){
        var
        props = ['Width', 'Height'],
        prop;
    
        while (prop = props.pop()) {
        (function (natural, prop) {
          $.fn[natural] = (natural in new Image()) ? 
          function () {
          return this[0][natural];
          } : 
          function () {
          var 
          node = this[0],
          img,
          value;
    
          if (node.tagName.toLowerCase() === 'img') {
            img = new Image();
            img.src = node.src,
            value = img[prop];
          }
          return value;
          };
        }('natural' + prop, prop.toLowerCase()));
        }
      }(jQuery));
    
      // Example usage:
      var 
      nWidth = $('img#example').naturalWidth(),
      nHeight = $('img#example').naturalHeight();
    
    26.03.2014

    8
  • $(this)[0].naturalHeight do të funksionojë në shfletuesit modernë, por nga IE6-IE8 thjesht duhet të krijoni një element të ri imazhi dhe të hiqni gjerësinë dhe lartësinë e tij. Vendosja e css në 'auto' do të funksionojë vetëm nëse ai stil ka specifikën më të lartë (të cilën nuk do ta ketë domosdoshmërisht). Gjithashtu shfaqja e elementit të imazhit dhe elementëve prind do të ndikojë në të (ekrani: asnjë në asnjë element paraardhës do të bëjë që ai të kthejë 0). 24.10.2011
  • @Jack +1 shtojca juaj është shumë më e fortë se kjo përgjigje, shihni gjithashtu css-tricks.com/snippets/jquery/get-an-images-native-width 13.10.2014
  • Leximi i CSS nuk tregon masat origjinale të imazhit si HTML5' naturalWidth dhe naturalHeight. 12.12.2016
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..