Firefox ve Opera'da bir HTML öğesini nasıl yakınlaştırabilirim?


82

Firefox ve Opera'da bir HTML öğesini nasıl yakınlaştırabilirim?

zoomMülkiyet IE, Google Chrome ve Safari'de çalışıyor, ancak Firefox ve Opera çalışmıyor.

Bu özelliği Firefox ve Opera'ya eklemek için herhangi bir yöntem var mı?


1
Sizi, sizinkini oldukça iyi yanıtlayan bu soruya yönlendiririm.
Ben

Yanıtlar:


80

Bu kodu deneyin, bu işe yarayacak:

-moz-transform: scale(2);

Sen başvurabilirsiniz bu .


2
Ya bu mükemmel çalışıyor.

Ondalık formdaki bir yüzdedir. (1 =% 100 2 =% 200 0.2 =% 20) Ancak yüzde notasyonunu da kullanabileceğinizi düşünüyorum. w3.org/TR/css3-values/#percentages
sholsinger

47
Bununla ilgili sorun, sabit konum elemanlarına sahip olduğunuz zamandır. Yakınlaştırma, dönüştürme ölçeğinden farklı bir şekilde çalışır.
Tom Roggero

3
Ayrıca ... ff yakınlaştırmayı destekliyorsa ne olur? Bu çift yakınlaştıracak mı? Bu çözüm imo gibi görünmüyor.
Cory Mawhorter

Bu, görüntünün belirli bir bölümünü yakınlaştırmamız gereken bir sprite görseliyle çalışmaz.
colin rickels

53

Yakınlaştırma ve dönüştürme ölçeği aynı şey değildir. Farklı zamanlarda uygulanırlar. Yakınlaştırma, oluşturma gerçekleşmeden önce uygulanır, sonra dönüştürülür. Bunun sonucu, genişlik / yükseklik =% 100 başka bir div'in içine yerleştirilmiş, sabit boyutlu bir div alırsanız, yakınlaştırma uygularsanız, iç yakınlaştırmanızın içindeki her şey küçülür veya büyür, ancak dönüşümün tamamını uygularsanız iç div küçülür (genişlik / yükseklik% 100 olarak ayarlansa bile, dönüşümden sonra% 100 olmayacaklar).


35

Benim için bu, yakınlaştırma ve ölçekleme dönüşümü arasındaki farkı karşılamak için çalışıyor, istenen amaçlanan başlangıç ​​noktasına ayarlayın:

zoom: 0.5;
-ms-zoom: 0.5;
-webkit-zoom: 0.5;
-moz-transform:  scale(0.5,0.5);
-moz-transform-origin: left center;

8

Onun scaleyerine kullanın ! Birçok araştırma ve testten sonra bu eklentiyi tarayıcılar arasında elde etmek için yaptım:

$.fn.scale = function(x) {
    if(!$(this).filter(':visible').length && x!=1)return $(this);
    if(!$(this).parent().hasClass('scaleContainer')){
        $(this).wrap($('<div class="scaleContainer">').css('position','relative'));
        $(this).data({
            'originalWidth':$(this).width(),
            'originalHeight':$(this).height()});
    }
    $(this).css({
        'transform': 'scale('+x+')',
        '-ms-transform': 'scale('+x+')',
        '-moz-transform': 'scale('+x+')',
        '-webkit-transform': 'scale('+x+')',
        'transform-origin': 'right bottom',
        '-ms-transform-origin': 'right bottom',
        '-moz-transform-origin': 'right bottom',
        '-webkit-transform-origin': 'right bottom',
        'position': 'absolute',
        'bottom': '0',
        'right': '0',
    });
    if(x==1)
        $(this).unwrap().css('position','static');else
            $(this).parent()
                .width($(this).data('originalWidth')*x)
                .height($(this).data('originalHeight')*x);
    return $(this);
};

usege:

$(selector).scale(0.5);

Not:

Sınıfı olan bir sarmalayıcı oluşturacaktır scaleContainer. İçeriği şekillendirirken buna dikkat edin.


Ölçeklenen öğenin kenarlık genişliğini .width($(this).data('originalWidth') * x + borderWidth)
işleyerek

5
zoom: 145%;
-moz-transform: scale(1.45);

daha güvenli tarafta olmak için bunu kullan


10
Bu, webkit'i 2x yakınlaştırır. Yakınlaştırarak yumruk, ölçeğe göre saniye
Ales Ruzicka

5

Ben değiştirecek zoomiçin transformdiğer cevaplar tarafından açıklandığı gibi, eşdeğer oldukları, çünkü her durumda. Benim durumumda transform-origin, eşyaları istediğim yere yerleştirmek için mülk uygulamak da gerekliydi .

Bu benim için Chome, Safari ve Firefox'ta çalıştı:

transform: scale(0.4);
transform-origin: top left;
-moz-transform: scale(0.4);
-moz-transform-origin: top left;


1

Bir süredir buna küfrediyorum. Zoom kesinlikle çözüm değil, kromda çalışıyor, kısmen IE'de çalışıyor ama tüm html div'i hareket ettiriyor, firefox hiçbir şey yapmıyor.

Benim için işe yarayan çözümüm, hem ölçekleme hem de çeviri kullanmak ve ayrıca orijinal boy ve ağırlığı eklemek ve ardından div'in kendisinin yüksekliğini ve ağırlığını ayarlamaktı:

#miniPreview {
transform: translate(-710px, -1000px) rotate(0rad) skewX(0rad) scale(0.3, 0.3);
transform-origin: 1010px 1429px 0px;
width: 337px;
height: 476px;

Açıkçası bunları kendi ihtiyaçlarınıza göre değiştirin. Bana tüm tarayıcılarda aynı sonucu verdi.


Bu tek doğru cevap! Tek başına ölçek, öğenin orijinal boyutunu değiştirmeden bırakır.
Honza Zidek

1

tüm sayfayı fireFox'ta yakınlaştırmak için bu kodu deneyin

-moz-transform: scale(2);

Bu kodu kullanıyorsam, y ve x ile ölçeklenen sayfanın tamamı doğru şekilde yakınlaştırılmıyor

so Sorry to say fireFox not working well using "-moz-transform: scale(2);"

**

FireFox'ta css kullanarak sayfanızı büyütemezsiniz

**


0

bu sizin için doğru çalışıyor mu? :

zoom: 145%;
-moz-transform: scale(1.45);
-webkit-transform: scale(1.45);
scale(1.45);
transform: scale(1.45);

0

Benim için bu, IE10, Chrome, Firefox ve Safari ile iyi çalışıyor:

   #MyDiv>*
   {
        zoom: 50%;
        -moz-transform: scale(0.5);
        -webkit-transform: scale(1.0);
   }

Bu, tüm içeriği% 50 oranında yakınlaştırır.


0

Yalnızca doğru ve W3C uyumlu cevap: <html>nesne ve rem. Ölçeği küçültürseniz dönüştürme düzgün çalışmaz (örneğin ölçek (0,5).

Kullanım:

html
{
   font-size: 1mm; /* or your favorite unit */
}

ve <body>metrik birimler yerine kodunuzda "rem" birimini (stiller dahil ) kullanın. Değişiklik olmadan "%" s. Tüm arka planlar için arka plan boyutunu ayarlayın. Diğer öğeler tarafından miras alınan gövde için yazı tipi boyutunu tanımlayın.

1.0 dışında yakınlaştırmayı etkinleştirecek herhangi bir koşul oluşursa etiketin yazı tipi boyutunu değiştirin (CSS veya JS aracılığıyla).

Örneğin:

@media screen and (max-width:320pt)
{
   html
   {
      font-size: 0.5mm; 
   }
}

Bu, yakınlaştırmaya eşdeğerdir: clientX ile JS'de sorunsuz 0,5 ve sürükle bırak olayları sırasında konumlandırma.

Medya sorgularında "rem" kullanmayın.

Gerçekten yakınlaştırmaya ihtiyacınız yok, ancak bazı durumlarda mevcut siteler için daha hızlı bir yöntem olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.