美文网首页
Web开发中常见方向问题(鼠标滚动方向,横竖屏)

Web开发中常见方向问题(鼠标滚动方向,横竖屏)

作者: 闫小兀 | 来源:发表于2017-05-05 11:18 被阅读218次

一.原生JS实现页面滚动方向检测

  判断页面滚动方向是一个常见的需求;关键点可以利用pageXOffset,pageYOffset做下小文章.
  pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。语法:通过
window.pageXOffset,window.pageYOffset就可以拿到;所有主流浏览器都支持pageXOffset 和 pageYOffset 属性;
  检测页面滚动方向的原理其实很简单,通过pageXOffset,pageYOffset属性获取当前值和之前的值进行对比即可,直接上代码.

    <script>
      window.onscroll = function(e) {
        scrollFunc();
      }
    
      var scrollAction = {x: 'undefined', y: 'undefined'}, scrollDirection;
    
      function scrollFunc() {
        if (typeof scrollAction.x == 'undefined') {
          scrollAction.x = window.pageXOffset;
          scrollAction.y = window.pageYOffset;
        }
        var diffX = scrollAction.x - window.pageXOffset;
        var diffY = scrollAction.y - window.pageYOffset;
        if (diffX < 0) {
        // Scroll right
          scrollDirection = 'right';
          console.log('right');
        } else if (diffX > 0) {
        // Scroll left
          scrollDirection = 'left';
          console.log('left');
        } else if (diffY < 0) {
        // Scroll down
          scrollDirection = 'down';
          console.log('down');
        } else if (diffY > 0) {
        // Scroll up
          scrollDirection = 'up';
          console.log('up');
        } else {
        // First scroll event
        }
        scrollAction.x = window.pageXOffset;
        scrollAction.y = window.pageYOffset;
      }
    </script>

二.Web开发移动端横竖屏问题

  在移动端,经常会遇到横竖屏问题,通常的处理方法有两种,CSS和js都能够实现

1.CSS媒体查询判断横竖屏

@media screen and (orientation:portrait) {
  //竖屏
}
@media screen and (orientation:landscape) {
  //横屏
}

  测试的时候可以使用Google Chrome控制台调试查看结果,如图:

mobile.png

2.JS判断横竖屏

//判断手机横竖屏状态:
window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
        if (window.orientation === 180 || window.orientation === 0) { 
            alert('竖屏状态!');
        } 
        if (window.orientation === 90 || window.orientation === -90 ){ 
            alert('横屏状态!');
        }  
    }, false); 
//移动端的浏览器一般都支持window.orientation这个参数,通过这个参数可以判断出手机是处在横屏还是竖屏状态。

  这儿貌似需要通过真机测试,效果才能出来,只好拿出我低调的iPhone玩了下,有图为证:

landscape.jpeg portrait.jpeg

相关文章

  • Web开发中常见方向问题(鼠标滚动方向,横竖屏)

    一.原生JS实现页面滚动方向检测   判断页面滚动方向是一个常见的需求;关键点可以利用pageXOffset,pa...

  • iOS横竖屏转换记录

    1. 横竖屏方向枚举 关于横竖屏一共有三种枚举,UIInterfaceOrientation,UIInterfac...

  • 2018-11-13mac系统

    1更改鼠标滚轮 系统偏好设置 鼠标 滚动方向自然,取消勾选。�

  • iOS 强制横/竖屏

    强制横竖屏 思路: 不同于自动旋转, 通过单利控制支持方向, 通过Device类强制让设备切换横竖方向 创建LFI...

  • Safari 快捷键

    上下方向键 小范围的垂直滚动页面左右方向键 小范围的水平滚动页面Option + 方向键 整屏的滚动页面Cmd +...

  • iOS 切换横竖屏

    参照:iOS强制转换横竖屏和键盘方向控制 实现点击按钮切换横竖屏的功能,设备锁屏无影响。效果如图所示: 然后,就是...

  • videoDemo的小总结

    videoDemo 横竖屏配置 参考博客链接 参考博客链接 方向枚举:UIInterfaceOrientation...

  • JS检测屏幕(鼠标或触屏)滚动方向

    原理:window/document对象的mousewheel事件

  • 第二章 H5适配方案

    web移动端页面的开发,由于手机屏幕尺寸、分辨率不同,或者需要考虑横竖屏问题,为了使得web页面在不同移动设备上具...

  • jquery.mousewheel.js鼠标滚动监听插件

    前言 项目中,有时需要监听鼠标的滚动事件,根据鼠标的滚动方向做出相应的事件处理,此时我们可以使用jquery.mo...

网友评论

      本文标题:Web开发中常见方向问题(鼠标滚动方向,横竖屏)

      本文链接:https://www.haomeiwen.com/subject/tpbjtxtx.html