JQuery移动页面开发之屏幕方向改变与滚屏的实现


Posted in Javascript onDecember 03, 2015

方向改变事件(orientationchange)
当设备的方向变化(设备横向持或纵向持)此事件被触发。绑定此事件时,你的回调函数可以加入第二个参数,作用为描述设备横或纵向的属性,"portrait"或;landscape"。这些值也会作为class值加入到html的元素中,使你可以通过css中的选择器改变他们的样式。注意现在当浏览器不支持orientationChange事件的时候我们绑定了resize 事件。

手持设备方向改变时执行

$(window).bind( 'orientationchange', function(e){
 var height=document.body.clientHeight - 195;
 $("#content").css("min-height",height);
 $("#thumb").css("margin",height/4.2 + "px auto");
 });

以上示例是本人用于在手持设备改变方向时填充整个页面,避免出现空白,可以根据自己的需求扩展。

$(function(){
 $('a').click(function(){
 $(window).trigger('orientationchange' );
 });
});

在智能手机和平板设备上,只有一个名称为orientationchange 的方向事件。该事件在设备被垂直或水平旋转时触发。要确定设备按哪个方向旋转,您可以访问方向属性,它提供一个只读值portrait 或 landscape。

绑定到 orientationchange 事件要求您定位 body 元素,然后使用 bind 方法来绑定事件。将orientationchange 事件绑定到body,但是要等待元素在文档就绪后,再绑定事件,这也很重要。否则,您会获得不一致的结果,因为body 元素可能在绑定时不可用。您也可以进一步增强该代码,当文档就绪时触发orientationchange 事件。

当文档就绪时触发orientationchange 事件

<!DOCTYPE HTML>
<html>
<head>
<title>Understanding the jQuery Mobile API</title>
<link rel="stylesheet" href="jquery.mobile.css" />
<script src="jquery.js"></script>
<script type="text/java script">
$(document).ready(function(){
 $(".tap-hold-test").bind("taphold", function(event) {
 $(this).html("Tapped and held");
 });
});
</script>
<script src="jquery.mobile.js"></script>
</head>
<body>
<div data-role="page" id="my-page">
<div data-role="header">
<h1>Header</h1>
</div>
<div data-role="content">
<ul data-role="listview" id="my-list">
<li class="tap-hold-test">Tap and hold test</li>
</ul>
</div>
</div>
</body>
</html>

$(document).ready(function(){
 $('body').bind('orientationchange', function(event) {
 alert('orientationchange: '+ event.orientation);
 });
});

当文档就绪时触发事件,这使您可以确定 Web 页面初始加载时的方向。当您需要 在用设备的当前方向显示内容时,这特别有用。您也可以通过CSS 访问方向值,因为它们被添加到 Web 页面中的 HTML 元素。这些强大的特性使您可以 设备的方向修改内容布局。

滚屏事件(scrollstart、scrollstop)
scrollstart:当屏幕滚动开始的时候触发。苹果的设备会在滚屏时冻结DOM的操作,当滚屏结束时按队列执行这些dom操作,我们现在正在研究方法让苹果的设备在滚屏开始前执行dom操作。

$(document).ready(function(){

 $('body').bind('scrollstart', function(event) {
 // Add scroll start code here
 });

});

scrollstop:滚屏结束时触发。

$(document).ready(function(){

 $('body').bind('scrollstop', function(event) {
 // Add scroll stop code here
 });

});
<!DOCTYPE html>
<html>
 <head>
  <title>Ajax测试</title>
  <meta charset="gbk">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="jquery-mobile/jquery.mobile-1.2.0.min.css"/>
  <link rel="stylesheet" href="jquery-mobile/jquery.mobile.structure-1.2.0.min.css"/>
  <script src="jquery-mobile/jquery-1.8.2.min.js"></script>
  <script src="jquery-mobile/jquery.mobile-1.2.0.min.js"></script>
 </head>
 <body>
  <div data-role="page" data-theme="b">
  <div data-role="header"></div>
  <div data-role="content">
   <script>
 //scrollstart事件
 function scrollstartFunc(evt) {
  try
  {
  var target = $(evt.target);
  while (target.attr("id") == undefined) {
  target = target.parent();
  }
  //获取触点目标id属性值
  var targetId = target.attr("id");
  alert("targetId: " + targetId);
  }
  catch (e) {
  alert('myscrollfunc:' + e.message);
  }
 }
 function myinit() {
  //绑定上下滑动事件
  $("#myul").bind('scrollstart', function () { scrollstartFunc(event); });
 }
 window.onload = myinit;
 </script>
 <!-- listview测试 -->
 <ul id="myul" data-role="listview" data-inset="true">
 <li data-role="list-divider">信息列表</li>
 <li id="li1" data-role="fieldcontain">信息1</li>
 <li id="li2" data-role="fieldcontain">信息2</li>
 <li id="li3" data-role="fieldcontain">信息3</li>
 <li id="li4" data-role="fieldcontain">信息4</li>
 <li id="li5" data-role="fieldcontain">信息5</li>
 <li id="li6" data-role="fieldcontain">信息6</li>
 <li id="li7" data-role="fieldcontain">信息7</li>
 <li id="li8" data-role="fieldcontain">信息8</li>
 <li id="li9" data-role="fieldcontain">信息9</li>
 <li id="li10" data-role="fieldcontain">信息10</li>
 </ul>
  </div>
 </body>
</html>
Javascript 相关文章推荐
JS TextArea字符串长度限制代码集合
Oct 31 Javascript
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
基于JavaScript实现前端文件的断点续传
Oct 17 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
JavaScript设计模型Iterator实例解析
Jan 22 Javascript
JS数组的常用方法整理
Mar 31 Javascript
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
Dec 03 #Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
Dec 03 #Javascript
详解JavaScript对象和数组
Dec 03 #Javascript
java必学必会之static关键字
Dec 03 #Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 #Javascript
继续学习javascript闭包
Dec 03 #Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 #Javascript
You might like
VOLVO车载收音机
2021/03/02 无线电
PHP的FTP学习(三)
2006/10/09 PHP
php图片裁剪函数
2018/10/31 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
python与字符编码问题
2019/05/24 Python
微信小程序python用户认证的实现
2019/07/29 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
python实现超级马里奥
2020/03/18 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
Python如何实现单例模式
2016/06/03 面试题
师范大学音乐表演专业求职信
2013/10/23 职场文书
打架检讨书400字
2014/01/17 职场文书
数学检讨书1000字
2014/02/24 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2015年国培研修感言
2015/08/01 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript