Rumah > hujung hadapan web > tutorial css > Adakah terdapat alternatif JavaScript penyemak imbas silang kepada unit port pandangan CSS (vh dan vw)?

Adakah terdapat alternatif JavaScript penyemak imbas silang kepada unit port pandangan CSS (vh dan vw)?

Mary-Kate Olsen
Lepaskan: 2024-11-02 18:40:03
asal
996 orang telah melayarinya

Is there a cross-browser JavaScript alternative to CSS viewport units (vh and vw)?

Unit Pandangan CSS dengan JavaScript

CSS3 memperkenalkan unit panjang peratusan paparan, vh dan vw, yang berharga untuk reka letak responsif. Walau bagaimanapun, timbul persoalan sama ada wujud alternatif JavaScript penyemak imbas untuk unit ini.

JavaScript/jQuery Alternative

Sungguh! jQuery boleh dimanfaatkan untuk menyediakan alternatif untuk unit viewport. Berikut ialah penyelesaian berasaskan jQuery:

<code class="javascript">/* jQuery plugin to convert viewport units to pixels */
;(function( $, window ){

  var $win = $(window)
    , _css = $.fn.css;

  function viewportToPixel( val ) {
    var percent = val.match(/[\d.]+/)[0] / 100
      , unit = val.match(/[vwh]+/)[0];
    return (unit == 'vh' ? $win.height() : $win.width()) * percent +'px';
  }

  function parseProps( props ) {
    var p, prop;
    for ( p in props ) {
      prop = props[ p ];
      if ( /[vwh]$/.test( prop ) ) {
        props[ p ] = viewportToPixel( prop );
      }
    }
    return props;
  }

  $.fn.css = function( props ) {
    var self = this
      , originalArguments = arguments
      , update = function() {
          if ( typeof props === 'string' || props instanceof String ) {
            if (originalArguments.length > 1) {
              var argumentsObject = {};
              argumentsObject[originalArguments[0]] = originalArguments[1];
              return _css.call(self, parseProps($.extend({}, argumentsObject)));
            } else {
              return _css.call( self, props );
            }
          } else {
            return _css.call( self, parseProps( $.extend( {}, props ) ) );
          }
        };
    $win.resize( update ).resize();
    return update();
  };

}( jQuery, window ));

**Usage:**
</code>
Salin selepas log masuk

$('div').css({
tinggi: '50vh',
lebar: '50vw',
marginTop: ' 25vh',
marginKiri: '25vw',
Saiz fon: '10vw'
});

This solution seamlessly integrates the viewport unit conversion into jQuery's CSS method, allowing for easy resizing of elements based on viewport dimensions.

**Safety Considerations**
Salin selepas log masuk

Atas ialah kandungan terperinci Adakah terdapat alternatif JavaScript penyemak imbas silang kepada unit port pandangan CSS (vh dan vw)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan