整体演示:
/* 竖屏样式 */
@media all and (orientation: portrait) {
body div {
width: 200px;
height: 500px;
background-color: pink;
}
}
/* 横屏样式 */
@media all and (orientation: landscape) {
body div {
width: 500px;
height: 200px;
background-color: orangered;
}
}
console.log('window:',window.orientation);
console.log('window:',window.orientationchange);
window.addEventListener("onorientationchange"in window ? "orientationchange": "resize", function() {
//判断window.orientation === 180||===0代表竖屏
if (window.orientation === 180 ||window.orientation=== 0){
console.log('竖屏状态!');
//竖屏情况下删除横屏样式
document.body.classList.remove("landscape");
};
//判断window.orientation === 90||===-90代表横屏
if (window.orientation === 90 ||window.orientation=== -90){
console.log('横屏状态!');
//竖屏情况下添加横屏样式
document.body.classList.add("landscape");
}
}, false);
// window.addEventListener("orientationchange", function () {
// if (window.orientation === 90 || window.orientation === -90) {
// console.log('横屏状态!');
// document.body.classList.add("landscape");
// } else {
// console.log('竖屏状态!');
// document.body.classList.remove("landscape");
// }
// });
---------------------------------------------------------------------------------------------------------------------------
可以使用JavaScript的`window.orientation`属性来判断当前屏幕的方向,其中0表示竖屏,90表示向左横屏,-90表示向右横屏。根据不同的方向,可以动态地修改CSS样式,以实现不同的布局效果。具体实现步骤如下:
1. 在CSS中定义针对横屏的样式,例如:
```
@media screen and (orientation: landscape) {
/* 横屏样式 */
.container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
}
```
2. 在JavaScript中监听`window.orientation`属性的变化,根据不同的值来添加或移除对应的CSS类,例如:
```
window.addEventListener("orientationchange", function() {
if (window.orientation === 90 || window.orientation === -90) {
document.body.classList.add("landscape");
} else {
document.body.classList.remove("landscape");
}
});
```
在以上代码中,当屏幕为横屏时,会给`