තිරයේ ප්‍රමාණය, වත්මන් වෙබ් පිටුව සහ බ්‍රව්සර කවුළුව ලබා ගන්න


2027

ලබා ගන්නේ කෙසේද windowWidth, windowHeight, pageWidth, pageHeight, screenWidth, screenHeight, pageX, pageY, screenX, screenY, සියලු ප්රධාන බ්රව්සරයන් තුළ කි්රයාත්මක කරන අතර?

කුමන අගයන් අවශ්‍යදැයි විස්තර කරන තිර රුව


9
pageHeight (ඡායාරූපයක) ඔබට ලබා ගත හැක්කේ: document.body.scrollHeight
befzz


මෙයද අදාළ විය හැකිද? developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia
මෙම්

3
සිත්ගන්නා සුළුය
e2-e4

1
ප්‍රයෝජනවත් නිබන්ධනය - w3schools.com/jsref/prop_win_innerheight.asp
ඉරෝ මාමා

Answers:


1392

ඔබට කවුළුවේ ප්‍රමාණය හෝ ලේඛනය 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;

2
JQuery ක්‍රමයේ උස () සියලු මූලද්‍රව්‍ය සඳහා ක්‍රියා කරන බව පෙනේ, සහ 46css ('height') ( "46px") වැනි නූලකට වඩා සංඛ්‍යාවක් ( ) ලබා දෙයි.
ක්‍රිස්

6
ජංගම සෆාරි සමඟ කටයුතු කරන විට, කනගාටුවට කරුණක් නම් jQuery මෙම ප්‍රශ්නයට පරිපූර්ණ විසඳුමක් නොවේ. Github.com/jquery/jquery/blob/master/src/dimensions.js
යෝෂුවා

8
Answer 웃웃 the පිළිතුරෙහි ඔබ සංස්කරණය කළේ කුමක්ද? සංශෝධනයන්ට අනුව, ඔබ කිසිසේත් කිසිවක් සංස්කරණය කළේ නැත
ඩැනියෙල් ඩබ්ලිව්.

15
Ar මාකෝ කර්විට්ස් නරකම දෙය නම් මම "ජාවාස්ක්‍රිප්ට් ලබා ගන්න කවුළු පළල" ටයිප් කිරීම සහ මෙම පිළිතුරේ අන්තර්ගතය ගූගල් හි තිබීමයි. මගෙන් ලොකු us ණ එකක්.
මැකීජ් ක්‍රව්සික්

2
JQuery විකල්පයක් බව OP DID ASK ඉල්ලා සිටියේය. එය බැහැර කිරීම සඳහා මුල් ප්‍රශ්නය සංස්කරණය කළ කවුරුන් හෝ මෙහි වරදක් මිස ලෞකික පිළිගත් ජාවාස්ක්‍රිප්ට් පුස්තකාලයක් භාවිතා කරමින් නීත්‍යානුකූල පිළිතුරු ලබා නොදෙන අය නොවේ.
IncredibleHat

966

මෙය ඔබ දැනගත යුතු සියල්ල ඇත: දර්ශනපථ / කවුළු ප්‍රමාණය ලබා ගන්න

නමුත් කෙටියෙන්:

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

58
ඇයි නැත්තේ g = document.body?
ගෙවන ලද නර්ඩ්

51
aidaidnerd: IE8 වැනි බ්‍රව්සර් නොසලකා හරින ප්‍රමිති document.body සඳහා සහය නොදක්වයි. කෙසේ වෙතත්, IE9 එසේ කරයි.
මයිකල් මිකොව්ස්කි

46
@ මයිකල් මිකොව්ස්කි එය සත්‍යයක් නොවේ! IE5 පවා සහය දක්වයි document.body.
Nux

32
uxnux මම නිවැරදි කර ඇති අතර IE8 හි සහාය තහවුරු කර ඇත්තෙමි. මම මෑතකදී ඉලක්ක කළ අවම වශයෙන් එක් බ්‍රව්සරයක්වත් document.body සඳහා සහය නොදක්වන බව මම දනිමි. අපට getElementsByTagName ප්‍රවේශය භාවිතා කිරීමට වෙනස් විය. නමුත් මම බ්‍රව්සරය වැරදි ලෙස ගණන් ගත්තා. සමාවන්න!
මයිකල් මිකොව්ස්කි

32
එක් අකුරක් සහිත විචල්‍ය නම් කිසි විටෙකත් ප්‍රයෝජනවත් නොවන බව ඉතා තදින් ප්‍රකාශ කිරීමට මම කැමැත්තෙමි.
wybe

484

පිරිසිදු ජාවාස්ක්‍රිප්ට් ( මූලාශ්‍රය ) සහිත හරස් බ්‍රව්සර විසඳුමක් මෙන්න :

var width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;

var height = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;

9
මෙය වඩා හොඳ වන්නේ පැටවීමේ ක්‍රියාවලියේදී ඔබට ස්ක්‍රිප්ට් එක ඉක්මනින් ඇමතීමට හැකි නම් (බොහෝ විට අදහස), එවිට ඩොම් තවමත් පටවා නොමැති නිසා body elementඑහි වටිනාකම නැවත ලැබෙනු ඇත undefined.
dgo

17
HA! පැරණි නූල් නමුත් ඒ සඳහා ස්තූතියි! මම හිතන්නේ මම හැකි තාක් දුරට අවම වශයෙන් IE8 වෙත සහය දැක්වීමට උත්සාහ කරන පැරණි "මෝඩයන්" අතුරින් කෙනෙක් වන අතර, පුදුමයට පත් වයස්ගත ගෘහස්ථ පරිශීලකයින්ගේ ප්‍රයෝජනය සඳහා ඔවුන්ගේ යන්ත්‍රවලට ගින්නක් ඇති වන තුරු කිසි විටෙකත් එක්ස්පී භාවිතය නතර නොකරනු ඇත. මම ප්‍රශ්න ඇසීමෙන් වෙහෙසට පත් වන අතර පිළිතුරක් ලබා ගැනීම වෙනුවට ඡන්දය ප්‍රකාශ කිරීම "IE8 සහාය දීම නවත්වන්න !!" අදහස් දැක්වීමක් ලෙස. නැවතත් ස්තූතියි! මෙය මා විසින් සිදු කරන ලද පිරිසිදු ජාවාස්ක්‍රිප්ට් ඡායාරූප විශාලනයක ගැටලුවක් විසඳීය. IE8 හි එය ටිකක් මන්දගාමී වේ, නමුත් දැන් අවම වශයෙන් එය ක්රියා කරයි !!! :-)
රැන්ඩි

1
නියමයි එය විවේකයට වඩා ගොඩක් හොඳයි.
විනයාක් ෂැඩියෝ

95

ලබා ගත හැකි තිර මානය ලබා ගැනීම සඳහා jQuery නොවන ක්‍රමයක්. window.screen.width/heightදැනටමත් සකස් කර ඇත, නමුත් ප්‍රතිචාරාත්මක වෙබ් නිර්මාණ සහ සම්පූර්ණත්වය නිසා එම ගුණාංග සඳහන් කිරීම වටී යැයි මම සිතමි.

alert(window.screen.availWidth);
alert(window.screen.availHeight);

http://www.quirksmode.org/dom/w3c_cssom.html#t10 :

availWidth සහ availHeight - තිරයේ ඇති පළල සහ උස (OS කාර්ය තීරු සහ එවැනි ඒවා හැර).


පළල තිරය හා සමානයි. ඇන්ඩ්‍රොයිඩ් ක්‍රෝම් බ්‍රව්සරයේ පික්සල් අනුපාතය අනුව බෙදනු ලැබේ :(
ඩාරියස්.වී

2
window.screen.availHeightසාමාන්‍ය තිර මාදිලිය අනුචලනය කිරීමට බල කරන පරිදි (ෆයර්ෆොක්ස් සහ ක්‍රෝම් වලින් පරීක්ෂා කර ඇත) සම්පූර්ණ තිර ප්‍රකාරය උපකල්පනය කරයි.
සුසානා

Uz සුසානා_කේ ඒ window.screen.heightවෙනුවට භාවිතා කරන්න.
vallentin

@vallentin window.screen.height ක්‍රියා නොකරනු ඇත, නමුත් window.innerHeight
සෑම්

67

නමුත් අපි ප්‍රතිචාර දක්වන තිර ගැන කතා කරන විට සහ යම් හේතුවක් නිසා jQuery භාවිතා කර එය හැසිරවීමට අපට අවශ්‍ය නම්,

window.innerWidth, window.innerHeight

නිවැරදි මිනුම ලබා දෙයි. එය පවා අනුචලන තීරුවේ අමතර ඉඩ ඉවත් කරන අතර එම ඉඩ වෙනස් කිරීම ගැන අපට කරදර විය යුතු නැත :)


2
උඩුගත කිරීම් රාශියක් සහිත පිළිගත් පිළිතුර මෙය විය යුතුය. දැනට පිළිගත් පිළිතුරට වඩා බෙහෙවින් ප්‍රයෝජනවත් පිළිතුරක් වන අතර එය jQuery මත රඳා නොපවතී.
developerbmw

5
අවාසනාවකට මෙන්, window.innerWidthහා window.innerHeightගිණුමට අනුචලන තීරුව ප්රමාණය සැලකිල්ලට ගැනීමට අසමත් වෙයි. අනුචලන තීරු තිබේ නම්, මෙම ක්‍රම මඟින් සියලුම ඩෙස්ක්ටොප් බ්‍රව්සර්වල කවුළු ප්‍රමාණයට වැරදි ප්‍රති results ල ලබා දේ. Stackoverflow.com/a/31655549/508355
hashchange

20

ඔබට WINDOW පළල සහ උස ලබා ගත හැකිය, බ්‍රව්සර් මෙවලම් තීරු සහ වෙනත් දේවල් මඟහරින්න. එය බ්‍රව්සරයේ කවුළුවේ භාවිතා කළ හැකි සැබෑ ප්‍රදේශයයි .

මෙය සිදු කිරීම සඳහා: window.innerWidth සහ window.innerHeightගුණාංග භාවිතා කරන්න ( w3 පාසල්වල doc බලන්න ).

බොහෝ අවස්ථාවන්හීදී පරිපූර්ණ කේන්ද්‍රීය පාවෙන මොඩල් සංවාදයක් පෙන්වීම හොඳම ක්‍රමය වනු ඇත. බ්‍රව්සරය භාවිතා කරන්නේ කුමන විභේදන දිශානතිය හෝ කවුළු ප්‍රමාණය නොසලකා කවුළුවේ ස්ථාන ගණනය කිරීමට එය ඔබට ඉඩ දෙයි.


2
W3 පාසල් වලට අනුව මෙය ie8 හෝ ie7 හි සහය නොදක්වයි. එසේම, ඔබ w3 පාසල් වෙත සම්බන්ධ වන විට ඔබ අවධානයෙන් සිටිය යුතුය. Meta.stackexchange.com/questions/87678/…
thecarpy

20
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>');

20

"කොන්සෝලය" භාවිතා කරමින් හෝ "පරීක්ෂා කරන්න" ක්ලික් කිරීමෙන් පසු ඕනෑම වෙබ් අඩවියක දැනට පටවා ඇති පිටුවේ උස සහ පළල පරීක්ෂා කිරීම .

පියවර 1 : මූසිකයේ දකුණු බොත්තම ක්ලික් කර 'පරීක්ෂා කරන්න' මත ක්ලික් කර 'කොන්සෝලය' ක්ලික් කරන්න

පියවර 2 : ඔබගේ බ්‍රව්සර තිරය 'උපරිම' ප්‍රකාරයේ නොතිබීමට වග බලා ගන්න. බ්‍රව්සර් තිරය 'උපරිම' ප්‍රකාරයේ තිබේ නම්, ඔබ මුලින්ම උපරිම බොත්තම ක්ලික් කළ යුතුය (දකුණේ හෝ වමේ ඉහළ කෙළවරේ ඇති) සහ එය උපරිම නොකරන්න.

පියවර 3 : දැන්, ලකුණට වඩා විශාල ('>') එනම් පහත සඳහන් දේ ලියන්න

       > window.innerWidth
            output : your present window width in px (say 749)

       > window.innerHeight
            output : your present window height in px (say 359)

1
මෙය තෝරාගත් පිළිතුර නොවන්නේ ඇයි?
ඉලියන් ඔනොෆ්රෙයි

1
U ඉලියන් ඔනොෆ්රෙයි එය මුල් ප්‍රශ්න මාලාවට සම්පූර්ණයෙන් පිළිතුරු නොදෙන නිසා. විහිළුවක් වීම, එය මට නිවැරදි පිළිතුරයි.
කොල්ලකන්න

අභ්‍යන්තර පළල සහ අභ්‍යන්තර උස නිවැරදි වන්නේ දර්ශනපත්‍ර පරිමාණය 1 නම් පමණි. මෙය පෙරනිමිය වන නමුත් එය CSS පරිණාමන භාවිතයෙන් නොදැනුවත්ව වෙනස් කළ හැකිය.
වික්ටර් ස්ටෝඩාර්ඩ්

"window.innerWidth" "screen.width" ට වඩා වෙනස්ව පරිශීලකයාගේ බ්‍රව්සරයේ ප්‍රමාණය තීරණය කිරීමට මට වැඩ කළේය - ස්තූතියි!
කෙවින් පිජාක්

10

ලේඛනයේ පළල සහ උස සඳහා ( pageWidthසහ pageHeightපින්තූරයේ) සැබවින්ම වෙඩි නොවදින විසඳුමක් ඔබට අවශ්‍ය නම්, ඔබට මගේ ප්ලගිනයක් වන jQuery.documentSize භාවිතා කිරීම ගැන සලකා බැලිය යුතුය .

එයට ඇත්තේ එක් අරමුණක් පමණි: jQuery සහ වෙනත් ක්‍රම අසමත් වූ අවස්ථා වලදී පවා නිවැරදි ලේඛන ප්‍රමාණය නැවත ලබා දීම . එහි නම තිබියදීත්, ඔබට අනිවාර්යයෙන්ම jQuery භාවිතා කිරීමට අවශ්‍ය නැත - එය වැනිලා ජාවාස්ක්‍රිප්ට් වලින් ලියා ඇති අතර jQuery නොමැතිව ක්‍රියා කරයි .

භාවිතය:

var w = $.documentWidth(),
    h = $.documentHeight();

ගෝලීය සඳහා document. වෙනත් ලේඛන සඳහා, උදා: ඔබට ප්‍රවේශ විය හැකි කාවැද්දූ අයිෆ්‍රේම් එකක, ලේඛනය පරාමිතියක් ලෙස සම්මත කරන්න:

var w = $.documentWidth( myIframe.contentDocument ),
    h = $.documentHeight( myIframe.contentDocument );

යාවත්කාලීන කිරීම: දැන් කවුළු මානයන් සඳහාද

1.1.0 අනුවාදයේ සිට, jQuery.documentSize කවුළු මානයන් ද හසුරුවයි.

එය අවශ්‍ය නිසා

jQuery.documentSize මෙම ගැටළු විසඳන $.windowWidth()සහ සපයන $.windowHeight(). වැඩි විස්තර සඳහා කරුණාකර ප්‍රලේඛනය බලන්න .


VM2859: 1 නොදන්නා DOMException: හරස් සම්භවයක් ඇති රාමුවකට පිවිසීමෙන් " localhost: 12999 " සම්භවයක් ඇති රාමුවක් අවහිර කර ඇත . (…) මෙය ඉක්මවා යාමට ක්‍රමයක් තිබේද ???
fizmhd

1
ඔබට වෙනත් වසමකින් iframes වෙත පිවිසිය නොහැක, එය එකම මූල ප්‍රතිපත්තියක් උල්ලං lates නය කරයි . පරීක්ෂා කරන්න මෙම පිළිතුර .
hashchange

ඔබ අයිෆ්‍රේම් එකක් කාවැද්දූ අතර දර්ශන වරායේ උස ලබා ගැනීමට උත්සාහ කරන්නේ නම් මෙය ක්‍රියා නොකරයි. window.innerHeight දෝෂ සහිත ලේඛනයේ උසට සමාන වේ. ඔබට රාමු වෙත පිවිසිය නොහැක. වෙනත් වසමකින් එය කළ හැකි විසඳුමක් නොවේ.
එම්. අබුල්සූඩ්

@ M.Abulsoud ඔබට iframe වෙත ප්‍රවේශය ලබා දී ඇත්නම් (CORS උල්ලං no නය කිරීමක් නොමැත), එය ක්‍රියාත්මක වන අතර එය පරීක්ෂණ කට්ටලයෙන් ආවරණය වේ. මෙම වාක්‍ය ඛණ්ඩය භාවිතා කරන්න . එය එකිනෙකා තුළ කූඩු කර ඇති බහු අයිෆ්‍රේම් සමඟ පවා ක්‍රියා කරයි - මෙම උදාහරණය කෝඩපෙන් හි බලන්න . ඔබේ සැකසුම සාමාන්‍යයෙන් ක්‍රියාත්මක වන නමුත් තනි විශේෂිත බ්‍රව්සරයකින් අසමත් වුවහොත් එය මා නොදන්නා දෝෂයකි. සමහර විට ඔබට එම අවස්ථාවේ දී ගැටලුවක් විවෘත කළ හැකිද? ස්තූතියි.
හැෂ්චේන්

8

ප්‍රමාණය පෙන්වීම සඳහා ඔබට භාවිතා කළ හැකි කුඩා ජාවාස්ක්‍රිප්ට් පොත් සලකුණක් මා ලිවීය. ඔබට එය පහසුවෙන් ඔබගේ බ්‍රව්සරයට එක් කළ හැකි අතර ඔබ එය ක්ලික් කරන සෑම විටම ඔබගේ බ්‍රව්සර කවුළුවේ දකුණු කෙළවරේ ප්‍රමාණය පෙනෙනු ඇත.

මෙහි bookmarklet භාවිතා කරන ආකාරය ඔබට තොරතුරු සොයා https://en.wikipedia.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()
)()

මූලික වශයෙන් කේතය කුඩා කවුළුවක් සැකසීමට සූදානම් වන අතර එය ඔබේ කවුළුවේ ප්‍රමාණය වෙනස් කරන විට යාවත්කාලීන වේ.


5

ප්‍රතිචාර දක්වන පිරිසැලසුමට සම්බන්ධ සමහර අවස්ථාවලදී $(document).height()වරායේ උස පමණක් පෙන්වන වැරදි දත්ත ලබා දිය හැකිය. උදාහරණයක් ලෙස සමහර div # එතීමේ උස ඇති විට: 100%, එම # රැප් එක එහි ඇති යම් කොටසකින් දිගු කළ හැකිය. නමුත් එහි උස තවමත් දර්ශනපථයේ උස මෙන් වනු ඇත. එවැනි තත්වයක් තුළ ඔබ භාවිතා කළ හැකිය

$('#wrapper').get(0).scrollHeight

එය නිරූපණය කරන්නේ තථ්‍ය ප්‍රමාණයයි.


සිය ගණනක් උඩු යටිකුරු කිරීම් සමඟ බොහෝ පිළිතුරු සපයන නමුත් මෙය ප්‍රයෝජනවත් විය.
නකිලෝන්

5

තිර ප්‍රමාණයට අදාළ සම්පූර්ණ මාර්ගෝපදේශය

ජාවාස්ක්‍රිප්ට්

උස සඳහා:

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

සටහන: කවුළුව උපරිම කළ විට මෙය screen.availHeight ට සමාන වේ

පළල සඳහා:

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/Build_Campaigns_and_Experiment/Use_screen_measurements_to_design_for_responsive_breakpoints


4

ඩෙස්ක්ටොප් සහ මොබයිල් බ්‍රව්සර් සඳහා නියම දර්ශන ප්‍රමාණය දැන ගැනීම සඳහා මම පුස්තකාලයක් නිර්මාණය කළෙමි, මන්ද දර්ශනපථයේ ප්‍රමාණයන් උපාංග අතර නොගැලපෙන අතර එම තනතුරේ සියලුම පිළිතුරු මත විශ්වාසය තැබිය නොහැක (මේ පිළිබඳව මා කළ සියලු පර්යේෂණ වලට අනුව): https: // github .com / pyrsmk / W.


3

සමහර විට කවුළුව සහ අභ්‍යන්තර අන්තර්ගතය ප්‍රතිනිර්මාණය කිරීමේදී පළල / උස වෙනස්වීම් දැකීමට ඔබට අවශ්‍ය වේ.

ඒ සඳහා මම කුඩා පිටපතක් ලියා ඇති අතර එය ප්‍රතිනිර්මාණය සහ ක්ෂණිකව යාවත්කාලීන කිරීම් ගතිකව අධීක්ෂණය කරන ලොග් කොටුවක් එක් කරයි.

එය ස්ථාවර ස්ථානයක් සහ ඉහළ z- දර්ශකයක් සහිත වලංගු HTML එකක් එක් කරයි, නමුත් එය ප්‍රමාණවත් තරම් කුඩා බැවින් ඔබට මෙය කළ හැකිය :

  • එය සත්‍ය වෙබ් අඩවියක භාවිතා කරන්න
  • ජංගම / ප්‍රතිචාරාත්මක අදහස් පරීක්ෂා කිරීම සඳහා එය භාවිතා කරන්න


පරීක්ෂා කර ඇත්තේ: ක්‍රෝම් 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 );

සංස්කරණය කරන්න: දැන් මෝස්තර අදාළ වන්නේ ලොගර් වගු මූලද්‍රව්‍යයට පමණි - සියලු වගු වලට නොවේ - එසේම මෙය jQuery රහිත විසඳුමකි :)


3

ES2020globalThis හි හඳුන්වාදීමත් සමඟ ඔබට වැනි ගුණාංග භාවිතා කළ හැකිය.

තිර ප්‍රමාණය සඳහා:

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)


2

මෙය ලබා ගැනීම සඳහා ඔබට තිර වස්තුව භාවිතා කළ හැකිය .

පහත දැක්වෙන්නේ එය නැවත පැමිණෙන්නේ කුමක් ද යන්න පිළිබඳ උදාහරණයකි:

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 කවුළුවක X අගය 2420(1920 + 500) ඇත. screen.width/heightකෙසේ වෙතත්, වර්තමාන තිරයේ පළල හෝ උස පෙන්වන්න.

ඔබගේ පිටුවේ පළල සහ උස ලබා ගැනීමට, jQuery ගේ $(window).height()හෝ භාවිතා කරන්න $(window).width().

නැවතත් jQuery භාවිතා කිරීම, භාවිතා කිරීම $("html").offset().topසහ $("html").offset().leftඔබේ pageXසහ pageYඅගයන් සඳහා.


screenX / Y ප්‍රාථමික තිරයට සාපේක්ෂ වන අතර වම් / ඉහළ බොහෝ තිරයට සාපේක්ෂව නොවේ. ඔබ දැනට ප්‍රාථමික තිරයේ වම්පස ඇති තිරයක සිටී නම් අගය negative ණ වන්නේ එබැවිනි.
ටොම්

2

සම්පූර්ණ 2020

එම ප්‍රශ්නයට වසර 10 ක් පමණ තිබීම ගැන මම පුදුමයට පත් වන අතර මේ දක්වා කිසිවෙකු සම්පූර්ණ පිළිතුරක් ලබා දී නොමැති බව පෙනේ (අගයන් 10 ක් සමඟ). එබැවින් මම OP ප්‍රශ්නය (විශේෂයෙන් පින්තූරය) හොඳින් විශ්ලේෂණය කර අදහස් දැක්වීම් කිහිපයක් කරමි

  • ඛණ්ඩාංක පද්ධතියේ කේන්ද්‍රය (0,0)දර්ශනපත්‍රයේ ඇත (බාර් සහ ප්‍රධාන මායිම් නොමැති බ්‍රව්සර් කවුළුව) ඉහළ වම් කෙළවරේ සහ අක්ෂ දකුණට සහ පහළට යොමු කෙරේ (OP පින්තූරයේ සලකුණු කර ඇති දේ) එබැවින් අගයන් pageX, pageY, screenX, screenYnegative ණ විය යුතුය (හෝ පිටුව කුඩා නම් ශුන්‍ය වේ හෝ අනුචලනය නොකෙරේ)
  • සඳහා screenHeight/Widthවිශ්රාම වැටුප් (. MacOs දී උදා) පද්ධතිය මෙනු තීරුව ඇතුළු තිරය උස / පළල ගණන් කිරීමට අවශ්ය - මෙම අප භාවිතා නොවේ ඇයි .availWidth/Height(එය ගණන් නො වන)
  • windowWidth/HeightOP සඳහා අනුචලන බාර්වල ප්‍රමාණය ගණනය කිරීමට අවශ්‍ය නොවන බැවින් අපි භාවිතා කරමු.clientWidth/Height
  • මෙම screenY- විසඳුමක් පහත දී අපි ඉහළ වම් බ්රවුසරය කෙළවරේ (තනතුරට එකතු window.screenY) එහි මෙනුව / tabls / url එක බාර් උස). බාගැනීම්-පහළ තීරුව බ්‍රව්සරයේ සහ / හෝ සංවර්ධක කොන්සෝලය පිටුවේ විවෘතව තිබේ නම් එම අගය ගණනය කිරීම අපහසුය - එවැනි අවස්ථාවකදී මෙම අගය පහත දැක්වෙන විසඳුමේ එම තීරුවේ / කොන්සෝලයේ උසින් වැඩි වේ. නිවැරදි කිරීම සඳහා බාර් / කොන්සෝලයේ උස කියවිය නොහැක (මිනුම් කිරීමට පෙර එම තීරුව / කොන්සෝලය වසා දැමීමට පරිශීලකයාගෙන් ඉල්ලා සිටීම වැනි උපක්‍රමයක් නොමැතිව ...)
  • pageWidth- පිටු පළල කවුළු පළලට වඩා කුඩා නම්, <body>මෙම අගය ලබා ගැනීම සඳහා අපි ළමා මූලද්‍රව්‍යවල ප්‍රමාණය අතින් ගණනය කළ යුතුය (අපි contentWidthපහත විසඳුමෙන් උදාහරණ ගණනය කරන්නෙමු - නමුත් පොදුවේ මෙය එවැනි අවස්ථාවකට අපහසු විය හැකිය)
  • සරල සඳහා මම උපකල්පනය <body>ආන්තිකය = 0 - ඔබ විට ගණනය මෙම අගයන් සලකා බැලිය යුතුය නොවේ නම් pageWidth/HeightහාpageX/Y

මම එය ක්‍රෝම් 83.0, සෆාරි 13.1, ෆයර්ෆොක්ස් 77.0 සහ එජ් 83.0 මත පරීක්ෂා කරමි


0

මෙන්න මගේ විසඳුම!

// 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();
})();



0

ප්‍රතික්‍රියා JS ව්‍යාපෘතියේ තිරයේ පළල ලබා ගැනීමට මට හැකි වූයේ මේ ආකාරයට ය:

පළල 1680 ට සමාන නම් 570 ක් ආපසු 200 ක් ආපසු එවන්න

var screenWidth = window.screen.availWidth;

<Label style={{ width: screenWidth == "1680" ? 570 : 200, color: "transparent" }}>a  </Label>

Screen.availWidth

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.