আমি কিভাবে পেতে পারেন windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
যা সমস্ত প্রধান ব্রাউজারে কাজ করবে?
আমি কিভাবে পেতে পারেন windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
যা সমস্ত প্রধান ব্রাউজারে কাজ করবে?
উত্তর:
আপনি jQuery সহ উইন্ডো বা নথির আকার পেতে পারেন:
// Size of browser viewport.
$(window).height();
$(window).width();
// Size of HTML document (same as pageHeight/pageWidth in screenshot).
$(document).height();
$(document).width();
স্ক্রিন আকারের জন্য আপনি screen
অবজেক্টটি ব্যবহার করতে পারেন :
window.screen.height;
window.screen.width;
46
CSS ('উচ্চতা') ( "46px"
) এর মতো স্ট্রিংয়ের পরিবর্তে একটি সংখ্যা ( ) দেয়।
এটিতে আপনার যা জানা দরকার তা রয়েছে: ভিউপোর্ট / উইন্ডোর আকার পান
তবে সংক্ষেপে:
var win = window,
doc = document,
docElem = doc.documentElement,
body = doc.getElementsByTagName('body')[0],
x = win.innerWidth || docElem.clientWidth || body.clientWidth,
y = win.innerHeight|| docElem.clientHeight|| body.clientHeight;
alert(x + ' × ' + y);
দয়া করে এই উত্তরটি সম্পাদনা বন্ধ করুন। কোডটি বিন্যাসের পছন্দটি মেলে বিভিন্ন লোকেরা এটি এখন 22 বার সম্পাদনা করেছেন। এটি কেবল উল্লেখ করা হয়েছে যে আপনি কেবল আধুনিক ব্রাউজারগুলি লক্ষ্য করতে চাইলে এটির প্রয়োজন হয় না - যদি আপনার কেবল নিম্নলিখিতগুলির প্রয়োজন হয়:
const width = window.innerWidth || document.documentElement.clientWidth ||
document.body.clientWidth;
const height = window.innerHeight|| document.documentElement.clientHeight||
document.body.clientHeight;
console.log(width, height);
g = document.body
?
document.body
।
খাঁটি জাভাস্ক্রিপ্ট ( উত্স ) সহ এখানে একটি ক্রস ব্রাউজার সমাধান রয়েছে :
var width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
var height = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
body element
মান ফিরে আসবে undefined
।
উপলভ্য স্ক্রিনের মাত্রা পাওয়ার জন্য একটি অ jQuery উপায়। window.screen.width/height
ইতিমধ্যে স্থাপন করা হয়েছে, তবে প্রতিক্রিয়াশীল ওয়েব ডিজাইন এবং সম্পূর্ণতার জন্য আমি এই বৈশিষ্ট্যগুলি উল্লেখ করা উচিত বলে মনে করি:
alert(window.screen.availWidth);
alert(window.screen.availHeight);
http://www.quirksmode.org/dom/w3c_cssom.html#t10 :
availWidth এবং availHeight - স্ক্রিনে উপলব্ধ প্রস্থ এবং উচ্চতা (ওএস টাস্কবারগুলি এবং এগুলি বাদ দিয়ে)।
window.screen.availHeight
পূর্ণ স্ক্রিন মোডটি ধরে নিয়েছে বলে মনে হচ্ছে যাতে স্বাভাবিক স্ক্রিন মোড স্ক্রোলিংয়ের জন্য চাপ দেয় (ফায়ারফক্স এবং ক্রোমে পরীক্ষিত)।
window.screen.height
করুন।
তবে যখন আমরা প্রতিক্রিয়াশীল স্ক্রিনগুলি নিয়ে কথা বলি এবং যদি আমরা কোনও কারণে jQuery ব্যবহার করে এটি পরিচালনা করতে চাই,
window.innerWidth, window.innerHeight
সঠিক পরিমাপ দেয়। এমনকি এটি স্ক্রোল-বারের অতিরিক্ত স্থান সরিয়ে দেয় এবং সেই স্থানটি সামঞ্জস্য করার বিষয়ে আমাদের চিন্তা করার দরকার নেই :)
window.innerWidth
এবং window.innerHeight
অ্যাকাউন্টে স্ক্রোল বারের আকার নিতে ব্যর্থ। যদি স্ক্রোল বারগুলি উপস্থিত থাকে তবে এই পদ্ধতিগুলি প্রায় সমস্ত ডেস্কটপ ব্রাউজারগুলিতে উইন্ডো আকারের জন্য ভুল ফলাফল দেয়। দেখুন stackoverflow.com/a/31655549/508355
ব্রাউজারের সরঞ্জামদণ্ড এবং অন্যান্য স্টাফগুলি এড়িয়ে আপনি উইন্ডো প্রস্থ এবং উচ্চতাও পেতে পারেন। এটি ব্রাউজারের উইন্ডোতে আসল ব্যবহারযোগ্য অঞ্চল ।
এটি করতে, ব্যবহার করুন:
window.innerWidth
এবং window.innerHeight
বৈশিষ্ট্যগুলি ( ডাব্লু 3 স্কুলগুলিতে ডক দেখুন )।
বেশিরভাগ ক্ষেত্রে এটি সর্বোত্তম উপায় হবে, উদাহরণস্বরূপ, পুরোপুরি কেন্দ্রিক ভাসমান মডেল ডায়ালগটি প্রদর্শন করা। এটি আপনাকে উইন্ডোতে অবস্থানগুলি গণনা করতে দেয়, কোনও রেজোলিউশন ওরিয়েন্টেশন বা উইন্ডো আকার ব্রাউজারটি ব্যবহার করছে তা বিবেচনা করে না।
function wndsize(){
var w = 0;var h = 0;
//IE
if(!window.innerWidth){
if(!(document.documentElement.clientWidth == 0)){
//strict mode
w = document.documentElement.clientWidth;h = document.documentElement.clientHeight;
} else{
//quirks mode
w = document.body.clientWidth;h = document.body.clientHeight;
}
} else {
//w3c
w = window.innerWidth;h = window.innerHeight;
}
return {width:w,height:h};
}
function wndcent(){
var hWnd = (arguments[0] != null) ? arguments[0] : {width:0,height:0};
var _x = 0;var _y = 0;var offsetX = 0;var offsetY = 0;
//IE
if(!window.pageYOffset){
//strict mode
if(!(document.documentElement.scrollTop == 0)){offsetY = document.documentElement.scrollTop;offsetX = document.documentElement.scrollLeft;}
//quirks mode
else{offsetY = document.body.scrollTop;offsetX = document.body.scrollLeft;}}
//w3c
else{offsetX = window.pageXOffset;offsetY = window.pageYOffset;}_x = ((wndsize().width-hWnd.width)/2)+offsetX;_y = ((wndsize().height-hWnd.height)/2)+offsetY;
return{x:_x,y:_y};
}
var center = wndcent({width:350,height:350});
document.write(center.x+';<br>');
document.write(center.y+';<br>');
document.write('<DIV align="center" id="rich_ad" style="Z-INDEX: 10; left:'+center.x+'px;WIDTH: 350px; POSITION: absolute; TOP: '+center.y+'px; HEIGHT: 350px"><!--К сожалению, у Вас не установлен flash плеер.--></div>');
"কনসোল" ব্যবহার করে বা "পরিদর্শন করুন" ক্লিক করার পরে কোনও ওয়েবসাইটের আপনার বর্তমান লোড পৃষ্ঠার উচ্চতা এবং প্রস্থ পরীক্ষা করতে ।
ধাপ 1 : মাউসের ডান বোতামটি ক্লিক করুন এবং 'পরিদর্শন করুন' এ ক্লিক করুন এবং তারপরে 'কনসোল' ক্লিক করুন
ধাপ ২ : আপনার ব্রাউজারের স্ক্রিনটি 'সর্বাধিক' মোডে না থাকা উচিত তা নিশ্চিত করুন। যদি ব্রাউজারের স্ক্রিনটি 'ম্যাক্সিমাইজ' মোডে থাকে তবে আপনাকে প্রথমে ম্যাক্সিমাইজ বোতামটি (ডান বা বাম দিকের কোণায় উপস্থিত) ক্লিক করতে হবে এবং এটি সর্বাধিক সীমাবদ্ধ করতে হবে।
পদক্ষেপ 3 : এখন, চিহ্ন ('>') এর চেয়ে বড়টির পরে নিম্নলিখিতটি লিখুন
> window.innerWidth
output : your present window width in px (say 749)
> window.innerHeight
output : your present window height in px (say 359)
আপনি নথিতে প্রস্থ ও উচ্চতা (জন্য সত্যিই একটি বুলেটপ্রুফ সমাধান প্রয়োজন pageWidth
এবং pageHeight
ছবিতে), আপনি খনি একটি প্লাগ-ইন ব্যবহার করে, বিবেচনা করতে পারে jQuery.documentSize ।
এর কেবল একটি উদ্দেশ্য রয়েছে: jQuery এবং অন্যান্য পদ্ধতি ব্যর্থ হলে এমন পরিস্থিতিতেও সর্বদা সঠিক ডকুমেন্টের আকার ফিরিয়ে দেওয়া । এর নাম সত্ত্বেও, আপনাকে অগত্যা jQuery ব্যবহার করতে হবে না - এটি ভ্যানিলা জাভাস্ক্রিপ্টে লিখিত এবং jQuery ছাড়াই কাজ করে করে।
ব্যবহার:
var w = $.documentWidth(),
h = $.documentHeight();
বিশ্বব্যাপী জন্য document
। অন্যান্য নথিগুলির জন্য, যেমন একটি এম্বেড থাকা আইফ্রেমে আপনার অ্যাক্সেস রয়েছে, নথিকে পরামিতি হিসাবে পাস করুন:
var w = $.documentWidth( myIframe.contentDocument ),
h = $.documentHeight( myIframe.contentDocument );
আপডেট: এখন উইন্ডো মাত্রা জন্য
সংস্করণ ১.১.০ থেকে, jQuery.docamentSize উইন্ডোর মাত্রাও পরিচালনা করে।
কারণ এটি প্রয়োজনীয়
$( window ).height()
অযথা হ'ল আইওএস- এ বগি$( window ).width()
এবং $( window ).height()
হয় মোবাইলে অবিশ্বস্ত কারণ তারা মোবাইল জুম প্রভাব হ্যান্ডেল না।jQuery.docamentSize সরবরাহ করে $.windowWidth()
এবং $.windowHeight()
, যা এই সমস্যাগুলি সমাধান করে। আরও জন্য, দয়া করে ডকুমেন্টেশন দেখুন ।
আমি একটি ছোট জাভাস্ক্রিপ্ট বুকমার্কলেট লিখেছি আপনি আকারটি প্রদর্শন করতে ব্যবহার করতে পারেন। আপনি এটি সহজেই আপনার ব্রাউজারে যুক্ত করতে পারেন এবং যখনই আপনি এটি ক্লিক করেন আপনি আপনার ব্রাউজার উইন্ডোর ডান কোণায় আকারটি দেখতে পাবেন।
এখানে আপনি কীভাবে একটি বুকমার্কলেট https://en.wikedia.org/wiki/Bookmarklet ব্যবহার করবেন সে সম্পর্কিত তথ্য পাবেন
javascript:(function(){!function(){var i,n,e;return n=function(){var n,e,t;return t="background-color:azure; padding:1rem; position:fixed; right: 0; z-index:9999; font-size: 1.2rem;",n=i('<div style="'+t+'"></div>'),e=function(){return'<p style="margin:0;">width: '+i(window).width()+" height: "+i(window).height()+"</p>"},n.html(e()),i("body").prepend(n),i(window).resize(function(){n.html(e())})},(i=window.jQuery)?(i=window.jQuery,n()):(e=document.createElement("script"),e.src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js",e.onload=n,document.body.appendChild(e))}()}).call(this);
মূল কোডটি কফিতে রয়েছে:
(->
addWindowSize = ()->
style = 'background-color:azure; padding:1rem; position:fixed; right: 0; z-index:9999; font-size: 1.2rem;'
$windowSize = $('<div style="' + style + '"></div>')
getWindowSize = ->
'<p style="margin:0;">width: ' + $(window).width() + ' height: ' + $(window).height() + '</p>'
$windowSize.html getWindowSize()
$('body').prepend $windowSize
$(window).resize ->
$windowSize.html getWindowSize()
return
if !($ = window.jQuery)
# typeof jQuery=='undefined' works too
script = document.createElement('script')
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'
script.onload = addWindowSize
document.body.appendChild script
else
$ = window.jQuery
addWindowSize()
)()
মূলত কোডটি একটি ছোট্ট ডিভের প্রস্তুতি নিচ্ছে যা আপনি যখন আপনার উইন্ডোর আকার পরিবর্তন করবেন তখন আপডেট হয়।
কিছু ক্ষেত্রে প্রতিক্রিয়াশীল বিন্যাসের সাথে সম্পর্কিত এমন $(document).height()
ভুল ডেটা ফিরে আসতে পারে যা কেবল পোর্টের উচ্চতা দেখায়। উদাহরণস্বরূপ যখন কিছু ডিভ # র্যাপারের উচ্চতা থাকে: 100%, এটি # র্যাপারের ভিতরে কিছু ব্লক দিয়ে প্রসারিত করা যায়। তবে এটির উচ্চতাটি ভিউপোর্টের উচ্চতার মতো হবে। এই পরিস্থিতিতে আপনি ব্যবহার করতে পারেন
$('#wrapper').get(0).scrollHeight
যা মোড়কের আসল আকারের প্রতিনিধিত্ব করে।
স্ক্রিন মাপ সম্পর্কিত সম্পূর্ণ গাইড
জাভাস্ক্রিপ্ট
উচ্চতার জন্য:
document.body.clientHeight // Inner height of the HTML document body, including padding
// but not the horizontal scrollbar height, border, or margin
screen.height // Device screen height (i.e. all physically visible stuff)
screen.availHeight // Device screen height minus the operating system taskbar (if present)
window.innerHeight // The current document's viewport height, minus taskbars, etc.
window.outerHeight // Height the current window visibly takes up on screen
// (including taskbars, menus, etc.)
দ্রষ্টব্য: উইন্ডোটি সর্বাধিক করা হয়ে গেলে এটি স্ক্রিনের সমান হবে avভাইলহাইট
প্রস্থের জন্য:
document.body.clientWidth // Full width of the HTML page as coded, minus the vertical scroll bar
screen.width // Device screen width (i.e. all physically visible stuff)
screen.availWidth // Device screen width, minus the operating system taskbar (if present)
window.innerWidth // The browser viewport width (including vertical scroll bar, includes padding but not border or margin)
window.outerWidth // The outer window width (including vertical scroll bar,
// toolbars, etc., includes padding and border but not margin)
jQuery
উচ্চতার জন্য:
$(document).height() // Full height of the HTML page, including content you have to
// scroll to see
$(window).height() // The current document's viewport height, minus taskbars, etc.
$(window).innerHeight() // The current document's viewport height, minus taskbars, etc.
$(window).outerHeight() // The current document's viewport height, minus taskbars, etc.
প্রস্থের জন্য:
$(document).width() // The browser viewport width, minus the vertical scroll bar
$(window).width() // The browser viewport width (minus the vertical scroll bar)
$(window).innerWidth() // The browser viewport width (minus the vertical scroll bar)
$(window).outerWidth() // The browser viewport width (minus the vertical scroll bar)
রেফারেন্স: https://help.optimizely.com/ বিল্ড_ ক্যাম্পেইন_আর_অ্যাক্সিমারিমেন্টস / ইউজ_স্ক্রিন_ম্যাসমেন্টস_ টো_ডিজাইন_ফ_সেসপনসিভ_ব্রেক পয়েন্টস
ডেস্কটপ এবং মোবাইল ব্রাউজারগুলির জন্য আসল ভিউপোর্টের আকারটি জানার জন্য আমি একটি লাইব্রেরি তৈরি করেছি, কারণ ভিউপোর্টের আকারগুলি ডিভাইসগুলির মধ্যে বিপরীত এবং post পোস্টের সমস্ত উত্তরের উপর নির্ভর করতে পারে না (আমি এই বিষয়ে করা সমস্ত গবেষণা অনুসারে): https: // github .com / pyrsmk / ওয়াট
উইন্ডো এবং অভ্যন্তরীণ সামগ্রীর পুনরায় আকার দেওয়ার সময় কখনও কখনও আপনাকে প্রস্থ / উচ্চতার পরিবর্তনগুলি দেখতে হবে।
তার জন্য আমি একটি ছোট স্ক্রিপ্ট লিখেছি যা একটি লগ বক্স যুক্ত করে যা সমস্ত আকার পরিবর্তন এবং প্রায় তাত্ক্ষণিকভাবে আপডেটগুলি গতিশীলভাবে পর্যবেক্ষণ করে।
এটি স্থির অবস্থান এবং উচ্চ জেড-সূচক সহ একটি বৈধ এইচটিএমএল যুক্ত করে, তবে যথেষ্ট ছোট, তাই আপনি এটি করতে পারেন :
পরীক্ষিত: ক্রোম 40, আই 11, তবে অন্যান্য / পুরানো ব্রাউজারগুলিতেও এটি কাজ করা অত্যন্ত সম্ভব ... :)
function gebID(id){ return document.getElementById(id); }
function gebTN(tagName, parentEl){
if( typeof parentEl == "undefined" ) var parentEl = document;
return parentEl.getElementsByTagName(tagName);
}
function setStyleToTags(parentEl, tagName, styleString){
var tags = gebTN(tagName, parentEl);
for( var i = 0; i<tags.length; i++ ) tags[i].setAttribute('style', styleString);
}
function testSizes(){
gebID( 'screen.Width' ).innerHTML = screen.width;
gebID( 'screen.Height' ).innerHTML = screen.height;
gebID( 'window.Width' ).innerHTML = window.innerWidth;
gebID( 'window.Height' ).innerHTML = window.innerHeight;
gebID( 'documentElement.Width' ).innerHTML = document.documentElement.clientWidth;
gebID( 'documentElement.Height' ).innerHTML = document.documentElement.clientHeight;
gebID( 'body.Width' ).innerHTML = gebTN("body")[0].clientWidth;
gebID( 'body.Height' ).innerHTML = gebTN("body")[0].clientHeight;
}
var table = document.createElement('table');
table.innerHTML =
"<tr><th>SOURCE</th><th>WIDTH</th><th>x</th><th>HEIGHT</th></tr>"
+"<tr><td>screen</td><td id='screen.Width' /><td>x</td><td id='screen.Height' /></tr>"
+"<tr><td>window</td><td id='window.Width' /><td>x</td><td id='window.Height' /></tr>"
+"<tr><td>document<br>.documentElement</td><td id='documentElement.Width' /><td>x</td><td id='documentElement.Height' /></tr>"
+"<tr><td>document.body</td><td id='body.Width' /><td>x</td><td id='body.Height' /></tr>"
;
gebTN("body")[0].appendChild( table );
table.setAttribute(
'style',
"border: 2px solid black !important; position: fixed !important;"
+"left: 50% !important; top: 0px !important; padding:10px !important;"
+"width: 150px !important; font-size:18px; !important"
+"white-space: pre !important; font-family: monospace !important;"
+"z-index: 9999 !important;background: white !important;"
);
setStyleToTags(table, "td", "color: black !important; border: none !important; padding: 5px !important; text-align:center !important;");
setStyleToTags(table, "th", "color: black !important; border: none !important; padding: 5px !important; text-align:center !important;");
table.style.setProperty( 'margin-left', '-'+( table.clientWidth / 2 )+'px' );
setInterval( testSizes, 200 );
সম্পাদনা করুন: এখন স্টাইলগুলি কেবল লগার টেবিল উপাদানগুলিতে প্রয়োগ করা হয় - সমস্ত টেবিলের জন্য নয় - এছাড়াও এটি একটি জিক্যুরি মুক্ত সমাধান :)
সাথে পরিচয় করিয়ে দেয়ার globalThis
মধ্যে ES2020 তোমার মত বৈশিষ্ট্য ব্যবহার করতে পারেন।
পর্দার আকারের জন্য:
globalThis.screen.availWidth
globalThis.screen.availHeight
উইন্ডো আকারের জন্য
globalThis.outerWidth
globalThis.outerHeight
অফসেটের জন্য:
globalThis.pageXOffset
globalThis.pageYOffset
...& শীঘ্রই.
alert("Screen Width: "+ globalThis.screen.availWidth +"\nScreen Height: "+ globalThis.screen.availHeight)
আপনি স্ক্রিন ব্যবহার করতে পারেন পেতে আপনি অবজেক্টটি ।
এটি কী ফিরে আসবে তার উদাহরণ নিম্নলিখিত:
Screen {
availWidth: 1920,
availHeight: 1040,
width: 1920,
height: 1080,
colorDepth: 24,
pixelDepth: 24,
top: 414,
left: 1920,
availTop: 414,
availLeft: 1920
}
আপনার screenWidth
ভেরিয়েবলটি পেতে , কেবল screen.width
একই সাথে ব্যবহার করুন screenHeight
, আপনি কেবল ব্যবহার করবেনscreen.height
।
আপনার উইন্ডো প্রস্থ এবং উচ্চতা পেতে, এটি হবে screen.availWidth
বাscreen.availHeight
যথাক্রমে।
জন্য pageX
এবং pageY
ভেরিয়েবল, ব্যবহার window.screenX or Y
। মনে রাখবেন যে এটি আপনার বাম / শীর্ষস্থানীয় স্ক্রিনের খুব বাম / শীর্ষ থেকে । সুতরাং আপনার যদি প্রস্থের দুটি স্ক্রিন থাকে 1920
তবে ডান পর্দার বাম দিক থেকে একটি উইন্ডো 500px এর একটি এক্স মান 2420
(1920 + 500) হবে।screen.width/height
তবে, বর্তমান পর্দার প্রস্থ বা উচ্চতা প্রদর্শন করুন।
আপনার পৃষ্ঠার প্রস্থ এবং উচ্চতা পেতে jQuery এর $(window).height()
বা ব্যবহার করুন$(window).width()
।
আবার jQuery এর, ব্যবহার ব্যবহার $("html").offset().top
এবং $("html").offset().left
আপনার জন্য pageX
এবং pageY
মান।
// innerWidth
const screen_viewport_inner = () => {
let w = window,
i = `inner`;
if (!(`innerWidth` in window)) {
i = `client`;
w = document.documentElement || document.body;
}
return {
width: w[`${i}Width`],
height: w[`${i}Height`]
}
};
// outerWidth
const screen_viewport_outer = () => {
let w = window,
o = `outer`;
if (!(`outerWidth` in window)) {
o = `client`;
w = document.documentElement || document.body;
}
return {
width: w[`${o}Width`],
height: w[`${o}Height`]
}
};
// style
const console_color = `
color: rgba(0,255,0,0.7);
font-size: 1.5rem;
border: 1px solid red;
`;
// testing
const test = () => {
let i_obj = screen_viewport_inner();
console.log(`%c screen_viewport_inner = \n`, console_color, JSON.stringify(i_obj, null, 4));
let o_obj = screen_viewport_outer();
console.log(`%c screen_viewport_outer = \n`, console_color, JSON.stringify(o_obj, null, 4));
};
// IIFE
(() => {
test();
})();
আমি কীভাবে প্রতিক্রিয়া জেএস প্রকল্পে স্ক্রিনের প্রস্থ লাভ করতে পেরেছি:
প্রস্থটি যদি 1680 এর সমান হয় তবে অন্য 570 ফেরত 200 করুন return
var screenWidth = window.screen.availWidth;
<Label style={{ width: screenWidth == "1680" ? 570 : 200, color: "transparent" }}>a </Label>