2009-06-28 18 views
73

बदलना मुझे अपनी साइट पर 2 बटन बनाने की आवश्यकता है जो ब्राउज़र ज़ूम स्तर (+) (-) को बदल देगा। मैं ब्राउज़र ज़ूम का अनुरोध कर रहा हूं और छवि आकार और लेआउट समस्याओं के कारण सीएसएस ज़ूम नहीं कर रहा हूं।ब्राउज़र ज़ूम स्तर

अच्छा, क्या यह भी संभव है? मैंने विवादित रिपोर्टें सुनी हैं।

+7

ब्राउज़र ज़ूम ऐसा कुछ है जिसे केवल उपयोगकर्ता द्वारा नियंत्रित किया जाना चाहिए - कभी भी वेबसाइट नहीं। यदि वेबसाइट ब्राउज़र ज़ूम स्तर को बदल सकती है, जो ब्राउज़र की सबसे बुनियादी पहुंच सुविधा को तोड़ देती है। मैं किसी वेब साइट को ब्राउज़र ज़ूम को गंभीर बग बदलने की अनुमति देने की किसी भी विधि पर विचार करता हूं, क्योंकि उस सुविधा का कोई भी उपयोग दुरुपयोग करेगा। – user57368

+34

@ अज्ञात (गूगल), बकवास। तुम बहुत गलत हो ऐसे नियंत्रण जावास्क्रिप्ट में समृद्ध वेब अनुप्रयोग बनाने के लिए अमूल्य हैं जो फ़्लैश तक माप सकते हैं, और दूसरे ब्राउज़र केवल ज़ूम नियंत्रण को सीमित कर सकते हैं ताकि उपयोगकर्ता इंटरैक्शन के साथ उपलब्ध हो और पूर्ण नियंत्रण न दिया जा सके। – Jourkey

+69

मैं वास्तव में पूरी तरह थक गया हूं "आपको XYZ कभी नहीं होना चाहिए"। हाँ, यह एक परिपूर्ण दुनिया में अच्छा और अच्छा है, या जब आप एक नई साइट लिख रहे हैं। लेकिन यदि साइट एक दशक पुरानी है, तो ग्राहक एक नए डिजाइन के लिए भुगतान नहीं करेगा, और आपके मालिक आपको टैबलेट पर साइट पर काम करने की उम्मीद करते हैं, इस तरह की "आपको वास्तव में नहीं करना चाहिए" मानसिकता गंभीर पीठ ले सकती है -सीट। यदि आप जानते हैं कि कुछ कैसे करना है, तो ऐसा कहें। यदि आप नहीं करते हैं, तो टिप्पणी मत करो। पैडेंटिक बकवास से बाहर निकलने वाले मंचों पर आना असहनीय है, और वास्तव में काफी कठोर है। –

उत्तर

30

मैं अधिकतर ब्राउज़र में कम से कम कुछ अतिरिक्त प्लगइन के बिना संभव नहीं कहूंगा। और किसी भी मामले में मैं ब्राउज़र के ज़ूम पर भरोसा करने से बचने की कोशिश करता हूं क्योंकि कार्यान्वयन अलग-अलग होते हैं (कुछ ब्राउज़र केवल फोंट ज़ूम करते हैं, अन्य छवियों को ज़ूम भी करते हैं)। जब तक आप उपयोगकर्ता अनुभव के बारे में ज्यादा परवाह नहीं करते हैं।

यदि आपको अधिक विश्वसनीय ज़ूम की आवश्यकता है, तो पेज फोंट और छवियों को जावास्क्रिप्ट और सीएसएस, या संभवतः सर्वर पक्ष पर ज़ूम करने पर विचार करें। छवि और लेआउट स्केलिंग मुद्दों को इस तरह से संबोधित किया जा सकता है। बेशक, इसके लिए थोड़ा और काम की आवश्यकता है।

1

आईई में संभव नहीं है, क्योंकि स्टेटस बार में यूआई ज़ूम बटन स्क्रिप्ट योग्य नहीं है। अन्य ब्राउज़रों के लिए वाईएमएमवी।

+0

आईई window.parent.document.body.style.zoom = 1.5 में संभव है के साथ अच्छी तरह से काम नहीं करता है; –

+5

मूल पोस्टर विशेष रूप से "सीएसएस ज़ूम नहीं" के लिए पूछता है। –

11

आप CSS3 zoom function का उपयोग कर सकते हैं, लेकिन मैंने अभी तक jQuery के साथ इसका परीक्षण नहीं किया है। अब कोशिश करेंगे और आपको बताएंगे। अद्यतन: इसका परीक्षण किया गया, काम करता है लेकिन यह मजेदार है

+0

दुख की बात है, ज़ूम संपत्ति क्रॉसब्रोसर समाधान नहीं है ... –

+0

हाँ, पूरी तरह से नहीं। क्रॉस ब्राउज़र के लिए कोई विचार? अद्यतन: कोई ज़रूरत नहीं, बस उपर्युक्त पोस्ट की जांच की! चीयर्स –

+0

क्रोम और सफारी में काम करने लगता है, लेकिन फ़ायरफ़ॉक्स नहीं। – Ansjovis86

26

यह प्रयास करें कि यह आपके लिए काम करता है या नहीं। यह एफएफ, आईई 8 + और क्रोम पर काम करता है। अन्य भाग गैर-फ़ायरफ़ॉक्स ब्राउज़र के लिए लागू होता है। हालांकि यह आपको ज़ूम प्रभाव देता है, यह वास्तव में ब्राउज़र स्तर पर ज़ूम मान को संशोधित नहीं करता है।

var currFFZoom = 1; 
    var currIEZoom = 100; 

    $('#plusBtn').on('click',function(){ 
     if ($.browser.mozilla){ 
      var step = 0.02; 
      currFFZoom += step; 
      $('body').css('MozTransform','scale(' + currFFZoom + ')'); 
     } else { 
      var step = 2; 
      currIEZoom += step; 
      $('body').css('zoom', ' ' + currIEZoom + '%'); 
     } 
    }); 

    $('#minusBtn').on('click',function(){ 
     if ($.browser.mozilla){ 
      var step = 0.02; 
      currFFZoom -= step;     
      $('body').css('MozTransform','scale(' + currFFZoom + ')'); 

     } else { 
      var step = 2; 
      currIEZoom -= step; 
      $('body').css('zoom', ' ' + currIEZoom + '%'); 
     } 
    }); 
+0

आप jQuery 1.8.3 या jQuery विस्थापित प्लगइन ($ .browser उपयोग करने के लिए) ओपेरा –

+0

+ does not काम सीएसएस जूमिंग है –

+14

इस में – SmallChess

17
IE में

संभव और क्रोम हालांकि यह फ़ायरफ़ॉक्स में काम नहीं करता:

<script type="text/javascript"> 
function toggleZoomScreen() { 
document.body.style.zoom="80%" 
} 
</script> 

<img src="example.jpg" alt="example" onclick="toggleZoomScreen()"> 
+5

Jourkey स्पष्ट रूप से * गैर के लिए पूछा * – kmkaplan

+2

यह सिर्फ शरीर पर सीएसएस ज़ूम वैल्यू इनलाइन बदल रहा है, जो कि सवाल के विपरीत बिल्कुल विपरीत है। – mystrdat

+0

यह मत भूलना कि इस ज़ूम स्थिति को लगातार सत्र सत्र में सहेजा और प्रबंधित किया जाना चाहिए और प्रत्येक पृष्ठ लोड को फिर से चलाया जाना चाहिए। –

2

<html> 
 
    <head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
     <script> 
 
     var currFFZoom = 1; 
 
     var currIEZoom = 100; 
 

 
     function plus(){ 
 
      //alert('sad'); 
 
       var step = 0.02; 
 
       currFFZoom += step; 
 
       $('body').css('MozTransform','scale(' + currFFZoom + ')'); 
 
       var stepie = 2; 
 
       currIEZoom += stepie; 
 
       $('body').css('zoom', ' ' + currIEZoom + '%'); 
 

 
     }; 
 
     function minus(){ 
 
      //alert('sad'); 
 
       var step = 0.02; 
 
       currFFZoom -= step; 
 
       $('body').css('MozTransform','scale(' + currFFZoom + ')'); 
 
       var stepie = 2; 
 
       currIEZoom -= stepie; 
 
       $('body').css('zoom', ' ' + currIEZoom + '%'); 
 
     }; 
 
    </script> 
 
    </head> 
 
<body> 
 
<!--zoom controls--> 
 
         <a id="minusBtn" onclick="minus()">------</a> 
 
         <a id="plusBtn" onclick="plus()">++++++</a> 
 
    </body> 
 
</html>

फ़ायरफ़ॉक्स में ज़ूम परिवर्तन नहीं होगा केवल पैमाने बदल !!!

+1

एक बार फिर, ** यह सीएसएस ज़ूमिंग ** है, जो प्रश्न से अवांछनीय है। –

1

मुझे वास्तविक ब्राउज़र ज़ूम स्तर को बदलने का कोई तरीका नहीं मिला, लेकिन आप सीएसएस ट्रांसफॉर्म के साथ बहुत करीब हो सकते हैं: स्केल()। जावास्क्रिप्ट और jQuery पर आधारित मेरा समाधान यहां है:

<!-- Trigger --> 
<ul id="zoom_triggers"> 
    <li><a id="zoom_in">zoom in</a></li> 
    <li><a id="zoom_out">zoom out</a></li> 
    <li><a id="zoom_reset">reset zoom</a></li> 
</ul> 

<script> 
    jQuery(document).ready(function($) 
    { 
     // Set initial zoom level 
     var zoom_level=100; 

     // Click events 
     $('#zoom_in').click(function() { zoom_page(10, $(this)) }); 
     $('#zoom_out').click(function() { zoom_page(-10, $(this)) }); 
     $('#zoom_reset').click(function() { zoom_page(0, $(this)) }); 

     // Zoom function 
     function zoom_page(step, trigger) 
     { 
      // Zoom just to steps in or out 
      if(zoom_level>=120 && step>0 || zoom_level<=80 && step<0) return; 

      // Set/reset zoom 
      if(step==0) zoom_level=100; 
      else zoom_level=zoom_level+step; 

      // Set page zoom via CSS 
      $('body').css({ 
       transform: 'scale('+(zoom_level/100)+')', // set zoom 
       transformOrigin: '50% 0' // set transform scale base 
      }); 

      // Adjust page to zoom width 
      if(zoom_level>100) $('body').css({ width: (zoom_level*1.2)+'%' }); 
      else $('body').css({ width: '100%' }); 

      // Activate/deaktivate trigger (use CSS to make them look different) 
      if(zoom_level>=120 || zoom_level<=80) trigger.addClass('disabled'); 
      else trigger.parents('ul').find('.disabled').removeClass('disabled'); 
      if(zoom_level!=100) $('#zoom_reset').removeClass('disabled'); 
      else $('#zoom_reset').addClass('disabled'); 
     } 
    }); 
</script> 
संबंधित मुद्दे