ব্রাউজার জুম স্তর পরিবর্তন করা হচ্ছে


105

আমার সাইটে আমার 2 টি বোতাম তৈরি করতে হবে যা ব্রাউজারের জুম স্তর (+) (-) পরিবর্তন করবে। আমি চিত্রের আকার এবং বিন্যাস সংক্রান্ত সমস্যার কারণে ব্রাউজার জুমকে সিএসএস জুম না অনুরোধ করছি।

আচ্ছা, এটা কি সম্ভব? আমি বিবাদমূলক রিপোর্ট শুনেছি।


8
ব্রাউজার জুম এমন একটি বিষয় যা কেবলমাত্র ব্যবহারকারী দ্বারা নিয়ন্ত্রিত হওয়া উচিত - কখনও ওয়েব সাইট নয়। যদি ওয়েব সাইট ব্রাউজারের জুম স্তরকে পরিবর্তন করতে পারে তবে ব্রাউজারগুলির মধ্যে এটির মধ্যে সবচেয়ে প্রাথমিক অ্যাক্সেসযোগ্যতার বৈশিষ্ট্যটি ভেঙে যায়। আমি কোনও ওয়েবসাইটকে ব্রাউজার জুমকে কোনও গুরুতর বাগ হিসাবে পরিবর্তন করার অনুমতি দেওয়ার যে কোনও পদ্ধতি বিবেচনা করব, কারণ সেই বৈশিষ্ট্যের কোনও ব্যবহারই অপব্যবহার হবে।
ব্যবহারকারী57368

37
@ অজ্ঞাত (গুগল), আজেবাজে কথা। আপনি ঠিক খুব ভুল। এই জাতীয় নিয়ন্ত্রণগুলি জাভাস্ক্রিপ্টে সমৃদ্ধ ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য অমূল্য যেগুলি ফ্ল্যাশ অবধি পরিমাপ করতে পারে এবং দ্বিতীয়ত ব্রাউজারগুলি জুম নিয়ন্ত্রণগুলি কেবলমাত্র ব্যবহারকারী ইন্টারঅ্যাকশন সহ উপলব্ধ হতে পারে এবং সম্পূর্ণ নিয়ন্ত্রণ দেয় না limit
জারকি

107
আমি সত্যিই পুরো "আপনার কখনই এক্সওয়াইজেড উচিত হবে না" ক্লান্ত হয়ে পড়েছি। হ্যাঁ, একটি নিখুঁত বিশ্বে এটি বেশ ভাল এবং ভাল, বা আপনি যখন একেবারে নতুন সাইট লিখছেন। তবে যদি সাইটটি দশক পুরানো হয় তবে ক্লায়েন্ট কোনও নতুন ডিজাইনের জন্য অর্থ প্রদান করবেন না এবং আপনার কর্তারা আশা করছেন যে আপনি কোনও ট্যাবলেটে কোনও সাইট তৈরি করবেন, সেই ধরণের "আপনার সত্যিকারের উচিত নয়" মানসিকতা মারাত্মকভাবে ফিরে আসতে পারে -সিট। আপনি যদি কিছু করতে জানেন তবে তাই বলুন। আপনি যদি না করেন, তবে মন্তব্য করবেন না। পেডেন্টিক বকাঝকা ফোটা ফোরামগুলিতে আসা অসহায়, এবং আসলে বেশ অভদ্র।
নাথান ক্রুজ

4
পুরানো পোস্ট কিন্তু "আপনার কখনই উচিত নয়" এবং "ব্রাউজারটিকে অনুমতি দেওয়া উচিত নয়" এর মধ্যে পার্থক্য রয়েছে। এটি ঠিক কারণ ওয়েব দেব সীমাবদ্ধতার দিকে ঠেলে দিচ্ছে, ব্যবহারকারীদের ভালোর জন্য ব্রাউজার ডেভসকে সীমাবদ্ধ রাখতে হবে। অন্যথায় আমরা এখনও কাস্টমাইজড রঙিন স্ক্রোলবারগুলির একটি ওয়েবে থাকব এবং উইন্ডো অনলোডটি শেক করব।
অলিভভিভি

4
পুরাতন পুনরজ্জীবিত তবে উত্তপ্ত অভিবাদন আপনাকে ধন্যবাদ নাথনক্রাউজ! আমি এমন এক জায়গায় পৌঁছে যাচ্ছি যেখানে অ্যাক্সেসিবিলিটি কার্যকারিতা প্রকাশ করতে হবে যেহেতু কিছু ব্যবহারকারীও দেখতে পাচ্ছেন না এবং ব্রাউজার জুম পরিবর্তন করতে সক্ষম না হওয়াই আমার জীবনকে আরও শক্ত করে তুলছে। সিএসএস জুম jquery ui নিয়ে ঠিক কাজ করে না
DdD

উত্তর:


42

আমি বলব বেশিরভাগ ব্রাউজারে সম্ভব নয়, কিছু অতিরিক্ত প্লাগইন না থাকলেও না not এবং যে কোনও ক্ষেত্রে আমি প্রয়োগগুলি পরিবর্তিত হওয়ায় ব্রাউজারের জুমের উপর নির্ভর এড়াতে চেষ্টা করব (কিছু ব্রাউজার কেবল ফন্টগুলি জুম করে, অন্যরা চিত্রগুলিও জুম করে)) আপনি যদি না ব্যবহারকারীর অভিজ্ঞতার বিষয়ে বেশি যত্ন নেন।

আপনার যদি আরও নির্ভরযোগ্য জুমের প্রয়োজন হয় তবে জাভাস্ক্রিপ্ট এবং সিএসএসের সাহায্যে পৃষ্ঠা ফন্ট এবং চিত্রগুলি জুমিংয়ের কথা বিবেচনা করুন অথবা সম্ভবত সার্ভারের পাশে। চিত্র এবং লেআউট স্কেলিংয়ের সমস্যাগুলি এইভাবে সম্বোধন করা যেতে পারে। অবশ্যই এর জন্য আরও কিছুটা কাজ দরকার।


37

IE এবং ক্রোমে সম্ভাব্য যদিও এটি ফায়ারফক্সে কাজ করে না:

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

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

9
Jourkey স্পষ্টভাবে চাইলেন সিএসএস জুম।
কিমিপ্যাপ্লান

4
এটি কেবলমাত্র শরীরের সিএসএস জুম মান ইনলাইন পরিবর্তন করছে, যা প্রশ্নটি জিজ্ঞাসা করা থেকে একেবারে বিপরীত।
mystrdat

ভুলে যাবেন না যে এই জুম রাষ্ট্রটি অবিচ্ছিন্নভাবে একটি সেশন ভেরিয়েবলে সংরক্ষণ এবং পরিচালনা করা এবং প্রতিটি পৃষ্ঠার লোড পুনরায় খেলতে হবে।
মাইকেল ব্লাকেনশিপ

30

এটি আপনার পক্ষে কাজ করে কিনা চেষ্টা করুন। এটি FF, IE8 + এবং ক্রোমে কাজ করে। অন্য অংশটি অ-ফায়ারফক্স ব্রাউজারগুলির জন্য প্রযোজ্য। এটি আপনাকে একটি জুম এফেক্ট দেয় যদিও এটি ব্রাউজার স্তরে জুম মানটি পরিবর্তিত করে না।

    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 + '%');
        }
    });

4
আপনার অবশ্যই jquery 1.8.3 বা jquery মাইগ্রেট প্লাগইন থাকতে হবে (
b ব্রাউজার

24
এটি সিএসএস জুম করছে
স্মলচেস

ধারাবাহিকতার জন্য, মোজ ট্রান্সফর্মের ক্ষেত্রে, মূলটি সেট করুন:
জোয়েল টেপ্লি

আপনার আজকাল transform: scale(..)সমস্ত ব্রাউজারে সেট করতে সক্ষম হওয়া উচিত । MozTransformফায়ারফক্সের বর্তমান সংস্করণগুলিতেও বিদ্যমান নেই।
হিল্কে ওালিঙ্গা

11

আপনি CSS3 জুম ফাংশনটি ব্যবহার করতে পারেন , তবে আমি এখনও jQuery দিয়ে এটি পরীক্ষা করি নি। এখনই চেষ্টা করবে এবং আপনাকে জানাতে হবে। আপডেট: এটি পরীক্ষা করেছে, কাজ করে তবে মজাদার


হ্যাঁ, পুরোপুরি না। ক্রস ব্রাউজারের জন্য কোনও ধারণা? আপডেট: কোন প্রয়োজন নেই, কেবল উপরের পোস্টটি চেক! চিয়ার্স
obzenner

Chrome এবং সাফারিতে কাজ করার মতো মনে হচ্ছে তবে ফায়ারফক্স নয়।
Ansjovis86

আইপ্যাড ওএস সাফারিতে ভাঙা
leroyjenkinss24

2

আমি প্রকৃত ব্রাউজার জুম স্তর পরিবর্তন করার কোনও উপায় খুঁজে পাইনি, তবে আপনি সিএসএস রূপান্তর: স্কেল () এর সাথে খুব কাছাকাছি যেতে পারেন। জাভাস্ক্রিপ্ট এবং 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>

2

যেমনটি গৃহীত উত্তর হিসাবে উল্লেখ করা হয়েছে, আপনি ডিওএমে উপাদানটির ফন্টসাইজ সিএসএস বৈশিষ্ট্য একের পর এক বড় করতে পারেন, আপনার রেফারেন্সের জন্য নিম্নলিখিত কোডটি।

 <script>
    var factor = 1.2;
    var all = document.getElementsByTagName("*");
    for (var i=0, max=all.length; i < max; i++) {
        var style = window.getComputedStyle(all[i]);
        var fontSize = style.getPropertyValue('font-size');

        if(fontSize){
            all[i].style.fontSize=(parseFloat(fontSize)*factor)+"px";
        }
        if(all[i].nodeName === "IMG"){
            var width=style.getPropertyValue('width');
            var height=style.getPropertyValue('height');
            all[i].style.height = (parseFloat(height)*factor)+"px";
            all[i].style.width = (parseFloat(width)*factor)+"px";
        }
    }
</script>

1

আইই তে সম্ভব নয়, স্ট্যাটাস বারের ইউআই জুম বোতামটি স্ক্রিপ্টযোগ্য নয়। অন্যান্য ব্রাউজারগুলির জন্য ওয়াইএমএমভি।


আইই উইন্ডোতে এটি সম্ভব।
মোস্তফা একিসি

8
মূল পোস্টারটি বিশেষত "সিএসএস জুম নয়" জন্য অনুরোধ করে।
i_am_jorf

0

<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>

ফায়ারফক্সে জুম পরিবর্তন হবে না শুধুমাত্র পরিবর্তন স্কেল !!!


4
আবার, এটি সিএসএস জুমিং , যা প্রশ্ন দ্বারা অনাকাঙ্ক্ষিত।
জন ওয়েইজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.