Baseline Widely available *
VisualViewport
ã¯è¦è¦çãã¥ã¼ãã¼ã API ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãæå®ãããã¦ã£ã³ãã¦ã®è¦è¦çãã¥ã¼ãã¼ãã表ãã¾ãã iframe ããããã¼ã¸ã§ã¯ãã³ã³ããã¼ãã¼ã¸ã ãã§ãªããããããã® iframe ã«ãåºæã®ã¦ã£ã³ãã¦ãªãã¸ã§ã¯ããåå¨ãã¾ãããã¼ã¸ä¸ã®åã¦ã£ã³ãã¦ã«ã¯ããã®ã¦ã£ã³ãã¦ã«é¢é£ä»ããããããããã£ã表ãåºæã® VisualViewport
ãåå¨ãã¾ãã
ã¦ã£ã³ãã¦ã®è¦è¦çãã¥ã¼ãã¼ãã¯ã Window.visualViewport
ã使ç¨ãã¦åå¾ãããã¨ãã§ãã¾ãã
ã¡ã¢: ã¬ã¤ã¢ã¦ããã¥ã¼ãã¼ãã¨ã¯ç°ãªãè¦è¦çãã¥ã¼ãã¼ãæã¤ã®ã¯æä¸ä½ã®ã¦ã£ã³ãã¦ã®ã¿ã§ãããããã£ã¦ãä¸è¬çã«ã¯æä¸ä½ã®ã¦ã£ã³ãã¦ã® VisualViewport
ãªãã¸ã§ã¯ãã®ã¿ã使ç¨ããã¾ãã <iframe>
ã®å ´åã VisualViewport.width
ã®ãããªè¦è¦çãã¥ã¼ãã¼ãã®ã¡ããªã¯ã¹ã¯ã常㫠document.documentElement.clientWidth
ãªã©ã®ã¬ã¤ã¢ã¦ããã¥ã¼ãã¼ãã®ã¡ããªã¯ã¹ã«å¯¾å¿ãã¾ãã
親ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãã EventTarget
ããç¶æ¿ããããããã£ãããã¾ãã
VisualViewport.offsetLeft
èªåå°ç¨
è¦è¦çãã¥ã¼ãã¼ãã®å·¦ç«¯ã®ãªãã»ããããã¬ã¤ã¢ã¦ããã¥ã¼ãã¼ãã®å·¦ç«¯ããã® CSS ãã¯ã»ã«æ°ã§è¿ãã¾ãã
VisualViewport.offsetTop
èªåå°ç¨
è¦è¦çãã¥ã¼ãã¼ãã®ä¸ç«¯ã®ãªãã»ããããã¬ã¤ã¢ã¦ããã¥ã¼ãã¼ãã®ä¸ç«¯ããã® CSS ãã¯ã»ã«ã§è¿ãã¾ãã
VisualViewport.pageLeft
èªåå°ç¨
è¦è¦çãã¥ã¼ãã¼ãã® x 座æ¨ããåæå å«ãããã¯ã®ä¸ç«¯ã®åç¹ããã®ç¸å¯¾ CSS ãã¯ã»ã«æ°ã§è¿ãã¾ãã
VisualViewport.pageTop
èªåå°ç¨
è¦è¦çãã¥ã¼ãã¼ãã® y 座æ¨ããåæå å«ãããã¯ã®ä¸ç«¯ã®åç¹ããã®ç¸å¯¾ CSS ãã¯ã»ã«æ°ã§è¿ãã¾ãã
VisualViewport.width
èªåå°ç¨
è¦è¦çãã¥ã¼ãã¼ãã®å¹ ãã CSS ãã¯ã»ã«åä½ã§è¿ãã¾ãã
VisualViewport.height
èªåå°ç¨
è¦è¦çãã¥ã¼ãã¼ãã®å¹ ãã CSS ãã¯ã»ã«åä½ã§è¿ãã¾ãã
VisualViewport.scale
èªåå°ç¨
è¦è¦ãã¥ã¼ãã¼ãã«é©ç¨ããããã³ããºã¼ã ã®åçãè¿ãã¾ãã
親ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãã EventTarget
ããç¶æ¿ããã¡ã½ãããããã¾ãã
ãããã®ã¤ãã³ãã¯ã addEventListener()
ã使ç¨ããããã¤ãã³ããªã¹ãã¼ããã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®é¢é£ãã onã¤ãã³ãå
ããããã£ã«ä»£å
¥ããããã¦å¾
ã¡åããã¾ãã
resize
è¦è¦çãã¥ã¼ãã¼ãããªãµã¤ãºãããã¨çºè¡ããã¾ãã onresize
ããããã£ãããå©ç¨ã§ãã¾ãã
scroll
è¦è¦çãã¥ã¼ãã¼ããã¹ã¯ãã¼ã«ãããã¨çºè¡ããã¾ãã onscroll
ããããã£ãããå©ç¨ã§ãã¾ãã
scrollend
è¦è¦çãã¥ã¼ãã¼ãã§ã®ã¹ã¯ãã¼ã«æä½ãçµäºããã¨çºè¡ããã¾ãã onscrollend
ããããã£ãããå©ç¨ã§ãã¾ãã
ãã®ä¾ã§ã¯ã Visual Viewport ã® README ããå¼ç¨ããã¦ã¼ã¶ã¼ããºã¼ã ã¤ã³ããéã«ããªã¼ãã¼ã¬ã¤ãããããã¯ã¹ï¼ä¾ãã°åºåãå«ãï¼ãé表示ã«ããã³ã¼ããå°ãæ¸ãæ¹æ³ã示ãã¦ãã¾ããããã¯ããã¼ã¸ããºã¼ã ã¤ã³ããéã®ã¦ã¼ã¶ã¼ã®ä½¿ãåæãåä¸ãããè¯ãæ¹æ³ã§ããã©ã¤ããµã³ãã«ãå©ç¨ã§ãã¾ãã
const bottomBar = document.getElementById("bottom-bar");
const viewport = window.visualViewport;
function resizeHandler() {
bottomBar.style.display = viewport.scale > 1.3 ? "none" : "block";
}
window.visualViewport.addEventListener("resize", resizeHandler);
ä½ç½®ã®ã·ãã¥ã¬ã¼ã·ã§ã³: device-fixed
ãã®ä¾ãã Visual Viewport ã® README ããå¼ç¨ãããã®ã§ããããã® API ã使ç¨ã㦠position: device-fixed
ã¨ãããè¦ç´ ãè¦è¦çãã¥ã¼ãã¼ãã«åºå®ããæ¹æ³ã示ãã¦ãã¾ããã©ã¤ããµã³ãã«ãå©ç¨ã§ãã¾ãã
const bottomBar = document.getElementById("bottom-bar");
const viewport = window.visualViewport;
function viewportHandler() {
const layoutViewport = document.getElementById("layoutViewport");
// ãã¼ã¯ position: fixed ã§ãããããã¬ã¤ã¢ã¦ããã¥ã¼ãã¼ãã®åç¹ãã
// è¦è¦çãã¥ã¼ãã¼ãã®ãªãã»ãããå·®ãå¼ãå¿
è¦ãããã¾ãã
const offsetLeft = viewport.offsetLeft;
const offsetTop =
viewport.height -
layoutViewport.getBoundingClientRect().height +
viewport.offsetTop;
// ãã㯠style.left 㨠style.top ãè¨å®ãããã¨ã§ã
// width: 100% ã¨åããã¨ãã§ãã¾ãã
bottomBar.style.transform = `translate(${offsetLeft}px, ${offsetTop}px) scale(${
1 / viewport.scale
})`;
}
window.visualViewport.addEventListener("scroll", viewportHandler);
window.visualViewport.addEventListener("resize", viewportHandler);
ã¡ã¢: ãã®ãã¯ããã¯ã¯æ
éã«ä½¿ç¨ãã¾ãããããã®ããã« position: device-fixed
ãæ¨¡å£ããã¨ãä¿®æ£ãããè¦ç´ ãã¹ã¯ãã¼ã«æã«ã¡ãã¤ããã¨ãããã¾ãã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4