『壹』 如何用javaScript 实现 iOSwebView里面Html界面导航栏置顶效果
//记录导航条原来在页面上的位置
var naviga_offsetTop = 0;
var naviga_offsetLeft = 0;
//IE7不识别getElementsByClassName,为了兼容自定义一个
function my_getElementsByClassName(class_name) {
var el = [];
//获取所有元素
_el = document.getElementsByTagName('*');
//通过className刷选
for (var i=0; i<_el.length; i++ ) {
if (_el[i].className == class_name ) {
el[el.length] = _el[i];
}
}
return el;
}
//导航条,悬停在顶部
function naviga_stay_top(){
var a_navigation_bar = [];
if(document.getElementsByClassName){//Chrome, FF
a_navigation_bar = document.getElementsByClassName("navigation");
} else {//IE
a_navigation_bar = my_getElementsByClassName("navigation");
}
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
document.title = scrollTop;
//如果向下滚动的距离大于原来导航栏离顶部的距离
//直接将导航栏固定到可视区顶部
if( scrollTop > naviga_offsetTop ){
a_navigation_bar[0].style.top = 0 + "px";
} else {
//如果向下滚动的距离小原来导航栏离顶部的距离,则重新计算导航栏的位置
a_navigation_bar[0].style.top = (naviga_offsetTop - scrollTop) + "px";
}
}
//给导航条上四个tab,加上点击事件。
window.onload=function(){
var a_tabs = [];
if( document.getElementsByClassName ){//Chrome, FF
a_tabs = document.getElementsByClassName("tab");
}else{ //IE
a_tabs = my_getElementsByClassName("tab");
}
var a_contents = [];
if( document.getElementsByClassName ){//Chrome, FF
a_contents = document.getElementsByClassName("content");
}else{//IE
a_contents = my_getElementsByClassName("content");
}
//获取offsetLeft,即导航栏离左边框的距离
var a_main_div = [];
if( document.getElementsByClassName ){//Chrome, FF
a_main_div = document.getElementsByClassName("main");
}else{ //IE
a_main_div = my_getElementsByClassName("main");
}
naviga_offsetLeft = a_main_div[0].offsetLeft;
a_tabs[0].onclick=function(){
window.scrollTo(0, a_contents[2].offsetTop);
}
a_tabs[1].onclick=function(){
window.scrollTo(0, a_contents[3].offsetTop);
}
a_tabs[2].onclick=function(){
window.scrollTo(0, a_contents[4].offsetTop);
}
a_tabs[3].onclick=function(){
window.scrollTo(0, a_contents[5].offsetTop);
}
//获取页面上,导航条到顶部的位置
var a_navigation_bar = [];
if(document.getElementsByClassName){//Chrome, FF
a_navigation_bar = document.getElementsByClassName("navigation");
} else {//IE
a_navigation_bar = my_getElementsByClassName("navigation");
}
//获取offsetTop
naviga_offsetTop = a_navigation_bar[0].offsetTop;
a_navigation_bar[0].style.left = naviga_offsetLeft + "px";
//给滚动条以及鼠标加上滚动事件
if( window.attachEvent) //IE
{
window.attachEvent("onmousewheel", naviga_stay_top);
window.attachEvent("onscroll", naviga_stay_top);
document.attachEvent("onmousewheel", naviga_stay_top);
document.attachEvent("onscroll", naviga_stay_top);
} else {//Chrome ,FF
window.addEventListener("mousewheel", naviga_stay_top,false);
window.addEventListener("scroll", naviga_stay_top,false);
document.addEventListener("mousewheel", naviga_stay_top,false);
document.addEventListener("scroll", naviga_stay_top,false);
}
}
『贰』 ios开发怎么获取topbar高度
1.状态栏
状态栏一般高度为像素,在打手机或者显示消息时会放大到40像素高,注意,两倍高度的状态栏在好像只能在纵向的模式下使用。如下图
iOS <wbr>各种控件默认高度
用户可以隐藏状态栏,也可以将状态栏设置为灰色,黑色或者半透明的黑色。
如果需要隐藏状态栏可以使用调用:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
或者在应用程序文件Info.plist中将UIStatusBarHidden键设为ture。
2.导航栏
在纵向模式下导航栏为44像素高,在横向模式下为32像素高,导航栏提供了一个很少用的提示模式,该模式将高度扩展了30像素,在纵向模式下为320*74像素,在横向模式下为480*74像素。
要向导航栏添加提示,则设置self.navigationItem.prompt = @"................"。
iOS <wbr>各种控件默认高度
3.选项卡 工具栏
选项卡为48像素高,工具栏为44像素高。此两个UI元素通长不用于横向模式。
iOS <wbr>各种控件默认高度
典型的带有导航栏和状态栏的应用程序为纵向显示保留了320*416的区域,为横向保留了480*268的区域。如果使用选项卡栏或者工具栏则会使高度再次减少48或者44像素。
4.键盘和pickerView
此一般都为横向320*216像素,纵向为480*162像素。
另外,UISwitch默认为94*28像素,UISegmentedControl通长为44像素高。
UITextField高度一般至少为30像素。
5.UIScreen类
[[UIScreen mainScreen] applicationFrame]一般会根据正在使用的工具栏,状态栏,导航栏来返回可用的区域。
iphone和iPad下各种常见控件的宽度和标准是一样的,所以这里就用iPhone说明。
以下是常见的几种控件的高度。Statusbar,Navigationbar和Tabbar的宽度极其图标大小。
iOS <wbr>各种控件默认高度
下表是更为详细的参数,包括了Statusbar,Navigationbar、Tabbar、toolbar和Keyboard等等
『叁』 iphone界面尺寸规范
iphone 6 plus设计版:1242*2208
ppi:401ppi
状态栏高度:60px
导航栏高度:132px
标签栏高度:147px
iphone 6 plus放大版:1125*2001
ppi:401ppi
状态栏高度:54px
导航栏高度:132px
标签栏高度:147px
iphone 6 plus物理版:1080*1920
ppi:401ppi
状态栏高度:54px
导航栏高度:132px
标签栏高度:147px
物理版、放大版、设计版的区别:
物理版就是iphone 6plus实际实际的屏幕像素,而设计版就是我们截屏iphone 6plus的界面在ps中去量,发现的尺寸。很明显,量出来的分辨率也就是设计版要比物理版的分辨率要大,这可能由于苹果采用了缩放显示的。至于放大版,其实就是iphone 6的尺寸等比放大1.5倍得出的分辨率。
iphone 6:750*1334
ppi:326ppi
状态栏高度:40px
导航栏高度:88px
标签栏高度:98px
iphone 5-5c-5s:640*1136
ppi:326ppi
状态栏高度:40px
导航栏高度:88px
标签栏高度:98px
iphone 4-4s:640*960
ppi:326ppi
状态栏高度:40px
导航栏高度:88px
标签栏高度:98px
iphone&ipod Touch第一代、第二代、第三代:320*480
ppi:163ppi
状态栏高度:20px
导航栏高度:44px
标签栏高度:49px
图标尺寸:
iphone 6 plus(@3X)
App store:1024*1024px(180px)
非retina:512*512px(90*90px)
程序应用:180*180px0000
主屏幕:114*114px(20px)
spotlight搜索:87*87px
工具栏和导航栏:66*66px
iphone 4、5、6(@2X)
App store:1024*1024px
程序应用:120*120px
主屏幕:114*114px
spotlight搜索:58*58px(10px)
工具栏和导航栏:44*44px
iphone&ipod touch第一代、第二代、第三代:
App store:1024*1024px
程序应用:120*120px
主屏幕:57*57px(10px)
spotlight搜索:29*29px
测量标注工具为:
MarkMan马克鳗,Dorado标注,PXcook像素大厨。
iphone6图标尺寸
导航栏的图标高度为44px左右,标签栏的图标尺寸为50x50px左右,最大为96x64px。
设置界面的图标高度和开关滑动按钮的图标高度:58px。
ip 6 plus的图标高度和开关滑动按钮为:87*87px。
iPhone6文字尺寸
导航栏的文字大小最大值是34-36px,标签栏的图标下方的文字大小为20px。
内容区域的文字大小是:20px~24px,26px,28px,30px,32px,34px。
文字颜色:
黑白灰颜色常用的数值是:
① 文字黑色#282828
② 文字深灰色#656565
③ 文字浅灰色#98989
④ 边框浅灰色#C3C3C3
⑤ 背景淡灰色#f2f2f2
⑥ 按钮背景纯白色#ffffff
常用的可点击高度,在iPhone6的原型图上,统一成88px。在iPhone6设计稿中,88px是一个常用的设计尺寸。
搜索栏的高度,在iPhone6的原型图上,统一成58px。
在iPhone6设计稿中,58px 也是一个常用的设计尺寸。
在iPhone6设计稿中,界面元素之间的常用距离,亲密距离:20px;疏远距离:30px。
导航栏的图标高度为44px(绝大部分功能按钮)左右,标签栏的图标尺寸为50x50px左右,最大为96x64px。
关闭按钮34px*34px,返回按钮26px,简单笔画图标40px。
常用的可点击高度-登陆框、密码框、功能列表等,统一设成88px。
搜索栏、输入框、评论框、地址框的高度,在iPhone6的原型图上,统一设成58px或60px。
在iPhone6设计稿中,界面元素之间的常用距离。
常用间距-亲密距离:20px(与边缘距离);疏远距离:30px;
其它距离-10px,44px等;
区块间隔:30-40px。
A、疏远距离:比如,改图标距离手机屏幕最左边的距离;
B、亲密距离:比如,左边图标与右边文字之间的距离。
黑白灰颜色常用的数值是:
① 文字黑色#333
② 文字深灰色#666
③ 文字浅灰色#999
④ 边框浅灰色#e5e5e5
⑤ 背景淡灰色#f2f2f2
⑥ 按钮背景纯白色#ffffff
移动端常规字体
IOS:常选择华文黑体或者冬青黑体,尤其是冬青黑体效果最好,方正兰亭黑和方正黑体简、方正中等线也运用的比较多。
字体的大小
1、导航栏的文字大小是36-38px;
2、标题字号:32px ,34px;
3、内容区域的正文文字大小是:28px,30px;
4、辅助性文字:20px , 24px,26px;
5、标签栏(或主菜单栏)的图标下方的文字大小为20px;
6、终极原则:不大于所在要件高度的一半*;
7、行间距:字号的1.2-1.5倍。
IOS
长文本
可接受下线(80%用户接受):26px
见小值(50%用户认为偏小):30px
舒适值(用户认为最舒适):32~34px
短文本
可接受下线(80%用户接受):28px
见小值(50%用户认为偏小):30px
舒适值(用户认为最舒适):32px
注释
可接受下线(80%用户接受):24px
见小值(50%用户认为偏小):24px
舒适值(用户认为最舒适):28px
颜色值
IOS颜色值取 RGB各颜色的值比如某个色值,给予IOS开发的色值为 R:12 G:34 B:56 给出的值就是 12,34,56(有时也要根据开发的习惯,有时也用十六进制)
内部设计
1、所有能点击的图片不得小于44px(Retina需要88px)
2、单独存在的部件必须是双数尺寸
3、两倍图以@2x作为命名后缀
4、充分考虑每个控制按钮在4中状态下的样式,如默认、按下、选中、不可点击。
短文本:
注释:
逻辑分辨率
lPPI(像素密度)
表示沿着对角线,每英寸所拥有的像素(pixel)数目,PPI的数值越高,代表显示屏能够以越高的密度显示图像,即通常所说的分辨率越高,颗粒感越弱,图像更清晰。
1 inch= 2.54cm = 25.4mm
早期的iPhone3GS的屏幕屏幕分辨率是320 * 480,iOS绘制图形(CGPoint/CGSize/CGRect)均已point为单位。
l点(point)和像素(pixel)换算关系
iPhone3GS
1point = 1pixel
iPone4/4s、iPhone5/iPhone5s、iPhone6/iPhone6s
1point = 2pixel
iPhone6Plus/iPhone6s Plus
1point = 3pixel
iphone手机英寸如何制定?
pt以及倍率之间的换算关系
建立色彩标准卡
ps有没有标注工具
图标栅格系统
『肆』 js 如何获得浏览器的高度
要在js中获得浏览器的高度可以参考以下步骤(具体代码见最后):
1、outerHeight属性设置或返回一个窗口的外部高度,包括所有界面元素(如工具栏/滚动条)。
2、outerWidth属性设置或返回窗口的外部宽度,包括所有的界面元素(如工具栏/滚动)。
3、innerheight 返回窗口的文档显示区的高度。
4、innerwidth 返回窗口的文档显示区的宽度。
补充:
在浏览器兼容方面:
1、所有主流浏览器都支持 outerWidth 和 outerHeight 属性。
注意:IE 8 及更早 IE 版本不支持该属性。
2、所有主流浏览器都支持 innerWidth 和 innerHeight 属性。
注意:IE 8 及更早 IE版本不支持这两个属性。
获取代码:
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head>
<title>请调整浏览器窗口</title> <meta http-equiv="content-type" content="text/html; charset=gb2312">
</meta></head>
<body>
<h2 align="center">请调整浏览器窗口大小</h2><hr />
<form action="#" method="get" name="form1" id="form1">
<!--显示浏览器窗口的实际尺寸-->
浏览器窗口 的 实际高度: <input type="text" name="availHeight" size="4"/><br />
浏览器窗口 的 实际宽度: <input type="text" name="availWidth" size="4"/><br />
</form>
<script type="text/javascript">
<!--
var winWidth = 0;
var winHeight = 0;
function findDimensions() //函数:获取尺寸
{
//获取窗口宽度
if (window.innerWidth)
winWidth = window.innerWidth;
else if ((document.body) && (document.body.clientWidth))
winWidth = document.body.clientWidth;
//获取窗口高度
if (window.innerHeight)
winHeight = window.innerHeight;
else if ((document.body) && (document.body.clientHeight))
winHeight = document.body.clientHeight;
//通过深入Document内部对body进行检测,获取窗口大小
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
{
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
}
//结果输出至两个文本框
document.form1.availHeight.value= winHeight;
document.form1.availWidth.value= winWidth;
}
findDimensions();
//调用函数,获取数值
window.onresize=findDimensions;
//-->
</script>
</body>
</html>