- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Possible Duplicate:
How do I lock the orientation to portrait mode in a iPhone Web Application?
我正在努力锁定网络应用程序的方向。例如,希望站点永久处于方向 View 中。
感谢建议。
最佳答案
我创建了函数keep
,它将您想要保持的方向(90/180/-90/0)作为参数:
function keep(nbre)
{
var preventer,deviceW=screen.width,deviceH=screen.height;
function set()//I put all the content of the body in a container named 'preventer' so that I can turn it (I can't turn the <body>)
{
var body=document.getElementsByTagName("body")[0];
preventer=document.createElement("div");
preventer.innerHTML=body.innerHTML;
preventer.style.position="absolute";
body.innerHTML="";
modify();
document.body.appendChild(preventer);
}
function modify()
{
function sign(x,y){return(x>0?1:(x<0?-1:y));}//Return the sign or y if 0
window.scrollTo(0,0);
var o=window.orientation,width,height,transformorigin,transform="rotate(",top,left;
if(!(nbre%180))//Multiple of 180 : 180, 360...
{
if(!(o%180))//Also multiple of 180
{
width=deviceW;//Width and height ar those of the device
height=deviceH-20;//-20 because of the status bar
}
else
{
width=deviceW-20;
height=deviceH;
}
}
else
{
if(!(o%180))
{
width=deviceH-20;
heigth=deviceW;
}
else
{
width=deviceH;
height=deviceW-20;
}
}
if(Math.abs(nbre%180)==Math.abs(o%180))//If it's 90 and 90 or 90 and -90 or 180 and 180...
{
transformorigin="50% 50%";//The origin of rotation must be the center of the div
}
else
{
transformorigin="0px 0px";
}
if(!nbre)//0
{
if(!(o%180))//180, 360...
{
transform=o;
}
else
{
transform=-o;
}
}
else
{
if(nbre==90)
{
transform=o-(o*2-90);//0=>90 90=>0 180=>-90 -90=>180
}
else
{
if(nbre==-90)
{
if(sign(o,-1)==-1)
{
transform=o-sign(o,1)*90;
}
else
{
transform=o-180+sign(o-180,1)*90;
}
}
else
{
if(!(o%180))
{
transform=o-sign(o,-1)*180;
}
else
{
transform=o;
}
}
}
}
transform+="deg)";
if(Math.abs(nbre)%180==Math.abs(o)%180)
{
top=0;
left=0;
}
else
{
if(nbre==0&&o==90||nbre==180&&o==-90)
{
top=deviceW-20;
left=0;
}
else
{
if(nbre==0&&o==-90||nbre==180&&o==90)
{
top=0;
left=deviceH;
}
else
{
if(nbre==-90&&o==0||nbre==90&&o==180)
{
top=deviceH-20;
left=0;
}
else
{
top=0;
left=deviceW;
}
}
}
}
preventer.style.webkitTransform=transform;
preventer.style.webkitTransformOrigin=transformorigin;
preventer.style.width=width+"px";
preventer.style.height=height+"px";
preventer.style.top=top+"px";
preventer.style.left=left+"px";
}
window.addEventListener("orientationchange",modify,false);
window.addEventListener("load",set,false);
}
这是一个较小的版本:
function keep(nbre)
{
var preventer,deviceW=screen.width,deviceH=screen.height;
function set()
{
var body=document.getElementsByTagName("body")[0];
preventer=document.createElement("div");
preventer.innerHTML=body.innerHTML;
preventer.style.position="absolute";
body.innerHTML="";
modify();
document.body.appendChild(preventer);
}
function modify()
{
function sign(x,y){return(x>0?1:(x<0?-1:y));}
window.scrollTo(0,0);
var o=window.orientation,s=!(nbre%180)?(!(o%180)?[deviceW,deviceH-20]:[deviceW-20,deviceH]):(!(o%180)?[deviceH-20,deviceW]:[deviceH,deviceW-20]),t=[Math.abs(nbre%180)==Math.abs(o%180)?"50% 50%":"0px 0px","rotate("+(!nbre?(!(o%180)?o:-o):((nbre==90)?o-(o*2-90):((nbre==-90)?(sign(o,-1)==-1?o-sign(o,1)*90:o-180+sign(o-180,1)*90):(!(o%180)?o-sign(o,-1)*180:o))))+"deg)"],p=Math.abs(nbre)%180==Math.abs(o)%180?[0,0]:(nbre==0&&o==90||nbre==180&&o==-90?[deviceW-20,0]:(nbre==0&&o==-90||nbre==180&&o==90?[0,deviceH]:(nbre==-90&&o==0||nbre==90&&o==180?[deviceH-20,0]:[0,deviceW])));
preventer.style.webkitTransform=t[1];
preventer.style.webkitTransformOrigin=t[0];
preventer.style.width=s[0]+"px";
preventer.style.height=s[1]+"px";
preventer.style.top=p[0]+"px";
preventer.style.left=p[1]+"px";
}
window.addEventListener("orientationchange",modify,false);
window.addEventListener("load",set,false);
}
然后,如果您编写 keep(90);
(代码中的任何位置),当您转动 iPod 时,屏幕将保持横向(左)。
P.S:它仅在全屏 View 中有效(当应用程序保存到主屏幕时)。
关于javascript - iPhone iPad iPod 网络应用程序的锁定方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667847/
我的妻子最近买了一个 nano,我想为它写一个简单的程序。看来 Apple 只发布了适用于 iPhone/iPod Touch 的 SDK,而无法针对 nano。 有哪些选项可以创建针对 nano 的
我是 iOS 开发的新手,我尝试在我的 iPod touch 2 代 (iOS 4.2.1) 上运行一个简单的 HelloWorld 应用程序。对于开发,我使用带有 Mountain Lion 和 X
我真的宁愿不购买 Mac 只是为了做到这一点。我知道已经努力使其成为可能,但很难说哪些值得我花时间。 谢谢! 最佳答案 我以前也想过这种事情……我在另一个论坛上找到了关于同一主题的帖子:http://
我只是想知道 iPod Touch 4G 是否支持低功耗蓝牙 4.0。 iOS v5.x 支持适用于 iOS 的蓝牙 LE (BLE)。那么升级到 iOS 5.x 是否会为 iPod Touch 启用
在属性部分下的CLLocation类引用内,它表示坐标: coordinate The geographical coordinate information. (read-only) @proper
我一直在尝试在 linux 上访问第 6 代 iPod nano。我试过Debian Squeeze自带的gtkpod,好像不支持第六代nano。所以我在 wine 下尝试了 iTunes,但它几乎没
我正在为 iPod 播放器 Controller 使用音乐播放器属性。 // .h @property (nonatomic, retain) MPMusicPlayerController *ipo
我正在为我的 iPod Touch 开发一款应用程序,该应用程序不使用 iPhone 特殊硬件(例如电话或摄像头)。我想在我的 iPod touch 上测试它。我已经是注册开发者(免费帐户,免费)。要
我使用 Core Graphics 开发了一个简单的绘图应用程序,您可以使用 Core Graphics 用手指在屏幕上绘图。 在第 3 代 iPod touch 上它运行非常非常流畅,但任何更好或更
我刚刚使用 PhoneGap build 创建了一个应用程序,并尝试在我的 iPod Touch 3G 设备上测试它。它说无法安装,因为它需要较新版本的 iPod 软件。我的 iPod 有 iOS 版
有人知道检测旧设备的方法吗: iPod touch 1G iPhone 2G iPhone 3G iPod touch 2G 来自较新的集合: iPhone 3GS iPod touch 3G iPa
我尝试编写 Activator 操作来更改当前歌曲评级。 我现在可以读取 MPMediaItemPropertyRating 属性并获得评级。 但是我们如何从应用程序中更改它呢? 最佳答案 您可以更改
有人有 iPhone/iPod 文件系统分析的硬数据吗?我对阅读比写作更感兴趣。 我正在考虑运行一些测试,但我想我应该检查一下是否有更聪明和/或更富有时间的人已经这样做了。 具体而言,我对许多小文件与
我正在编写一个 iPad 应用程序,它使用“Flite”文本转语音引擎来宣布特定事件。 Flite 引擎使用 AVAudioPlayer 实例在渲染后播放语音音频。为了好玩,我决定在我的应用程序中添加
我使用下面提到的代码来确定是否有“耳机”连接到iOS设备。 //find out, if any earphones are connected to the device - (BOOL)isHea
我正在为 iPod 构建一个应用程序。 运行它时, native iPod 音乐应用程序应继续在后台播放,但这并没有发生。 我认为这可能与我的应用程序播放的声音有关。为了在某个点播放短声音,我使用
我想使用 AudioFileOpenURL 或 ExtAudioFileOpenURL 播放 iPod 库中的音乐。 CFURLRef fileURL = [mediaItem valueForPro
我在我的应用程序中使用 MusicPlayerController 对象来播放音乐。我知道当它在 iphone ipod 应用程序上终止时可以继续播放我的应用程序音乐。 我该怎么做? 最佳答案 涉及到
我的应用程序在后台使用定位服务。为了减少电池消耗,我发现最好注册重要位置更改通知。它说要获得此通知设备需要手机 radio 。现在我怀疑我是否可以在 iPod 中获得重要的位置更改通知....我搜索了
我正在尝试能够通过 iPhone 的麦克风录制音频,同时从 iPod 播放音乐。 录音和播放分开进行,但如果我尝试从 iPod 播放并同时录音,录音就会停止。 顺便说一句,我并不是真的录制音频来保存声
我是一名优秀的程序员,十分优秀!