html如何适应手机?

html如何适应手机?,第1张

有几种,利用meta标签、百分比法、使用CSS3单位rem、媒体查询。

利用meta标签

Meta标签主要用来描述一个HTML网页文档的属性,如作者、日期时间、网页描述、关键词、页面刷新等,它的Description和Keywords属性,可加入网站的关键字,让网页利于搜索引擎。

<meta name="viewport" content="width=device-width,initial-scale=10, minimum-scale=10, maximum-scale=10, user-scalable=no"/>

解释:Viewport指用户网页的可视区域,content中的“width”指的是虚拟窗口宽度,上面代码意为虚拟窗口/页面宽度初始比例为1,最小比例为1,最大比例为1,用户不可扩展,页面不可缩放。

以上标签只支持一种尺寸,正确的做法是用js动态生成下面标签,前提是要先获取屏幕尺寸。

<script type="text/javascript">

var phoneWidth =  parseInt(windowscreenwidth);

var phoneScale = phoneWidth/640;

var ua = navigatoruserAgent;

if (/Android (d+d+)/test(ua)){var version = parseFloat(RegExp$1);

if(version>23){ documentwrite(‘<meta name="viewport" content="width=640, minimum-scale = ‘+phoneScale+‘, maximum-scale = ‘+phoneScale+‘, target-densitydpi=device-dpi">‘); }

else{documentwrite(‘<meta name="viewport" content="width=640, target-densitydpi=device-dpi">‘); }

else { documentwrite(‘<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi">‘); }

</script>

百分比法

CSS中的百分比中指的是相对于父元素的宽度。子元素的padding-left:50%,父元素的宽度是百,子元素的margin-top:20%,那么父元素的高是百。body默认宽度是屏幕宽度(PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)就可以了。但这只适合布局简单的页面,复杂的页面实现很困难。

使用CSS3单位rem

在页面载入开始时首先判断window的宽度(是window的宽度($(window)width()),不是屏幕分辩率的宽度(screenwidth),两者差别请自行查阅),假设宽度为W,一个div在宽度为640px的设计稿的下的宽度为dW1,如果html的font-size为100px,那么这个div的宽度用rem表示是多少呢?

计算:div宽度dW2=dW1/100,px与rem之间换算除以100就可以,这是假定屏幕宽度为640的,而不同宽度的屏幕怎么处理,为了能保证换算容易那就要为html设置一个合适的font-size,计算:100 / 640 = fontSize / W, fontSize = W / 640 100 = W / 64。大多数浏览器font-size的最小值为12px,所以只能用100作为缩放比例。

所以会在头部加上这个JS代码:

<script type="text/javascript">

var html = documentquerySelector(‘html‘);

var rem = htmloffsetWidth / 64;

htmlstylefontSize = rem + "px";

媒体查询

媒体查询正是为解决网页适应手机屏幕。媒体查询的功能就是为不同的“媒体”设置不同的css样式,页面尺寸,设备屏幕尺寸等,比如我们要为宽度小于480px的页面中的class="icon"的元素设置样式,可以这样写,@media screen and (max-width=480px) {icon{ some styles }};具体可自行研究。

刚刚过去的一年里基于微信的H5营销可谓是十分火爆,通过转发朋友圈带来的病毒式传播效果相信大家都不太陌生吧,刚好最近农历新年将至,我就拿一个“摇签”的小例子来谈一谈HTML5中如何调用手机重力感应的接口。

演示代码:摇一摇,万福签

什么是重力感应

说到重力感应有一个东西不得不提,那就是就是陀螺仪,陀螺仪就是内部有一个陀螺,陀螺仪一旦开始旋转,由于轮子的角动量,陀螺仪有抗拒方向改变的特性,它的轴由于陀螺效应始终与初始方向平行,这样就可以通过与初始方向的偏差计算出实际方向。

手机中的方位轴

在Web应用中调用手机陀螺仪接口

//摇一摇(使用DeviceOrientation事件, 本质是计算偏转角)

//测试中发现有些设备不支持

if(windowDeviceOrientationEvent){

$(window)on('deviceorientation', function(e) {

if (isStarted) {

return true;

}

if (!lastAcc) {

lastAcc = e;

return true;

}

var delA = Mathabs(ealpha - lastAccalpha);

var delB = Mathabs(ebeta - lastAccbeta);

var delG = Mathabs(egamma - lastAccgamma);

if ( (delA > 15 && delB > 15) || (delA > 15 && delG > 15) || (delB > 15 || delG > 15)) {

start();

}

lastAcc = e;

});

//摇一摇(使用DeviceMotion事件, 推荐,应为可以计算加速度)

if(windowDeviceMotionEvent) {

var speed = 25;

var x, y, z, lastX, lastY, lastZ;

x = y = z = lastX = lastY = lastZ = 0;

windowaddEventListener('devicemotion', function(event){

var acceleration = eventaccelerationIncludingGravity;

x = accelerationx;

y = accelerationy;

if(Mathabs(x-lastX) > speed || Mathabs(y-lastY) > speed) {

start();

}

lastX = x;

lastY = y;

}, false);

}

摇一摇的代码判断逻辑

var isStarted = false;

// 开始摇签

function start() {

isStarted = true;

$('qiancover')hide();

$('decode')hide();

$('result')show();

// setTimeout(showDecode, 3000);

}

// 显示正在解签

function showDecode() {

$('result')hide();

$('decode')show();

setTimeout(jumpToDecode, 3000);

}

// 跳至签文页面

function jumpToDecode(){

var urls = ["#", "#"];

var jumpTo = urls[parseInt(Mathrandom() urlslength)];

windowlocation = jumpTo;

};

示例代码: https://githubcom/lionrock/HTML5-Example/tree/master/wechat-divination

参考文档: DeviceOrientation Event Specification

来源:http://xunlixyz/2016/01/12/html5-device-shake/utm_source=tuicool&utm_medium=referral

1、首先准备一个HTML结构的文档,页面可以制作的简单点。

2、然后在页面的body区域中放置一个img。

3、我们先来运行一下页面,你会在页面中看到如下图所示的圆圈。

4、接下来我们就需要对页面进行CSS处理,如下图所示,给img添加样式,注意里面有旋转样式。

5、然后实现旋转的设置,这个是CSS3的新功能,主要是对进行旋转度数的设置。

6、最后运行程序,你会看到页面中的圆圈在不停的旋转,和我们平常看到的加载中的效果很像。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/1269649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-09-10
下一篇2023-09-10

随机推荐

  • 经典哲理句子

      经历过看清身边伪朋友,假爱情,什么患难见真情!明白自己该要什么?看懂了那些是真真假假的"朋友"所以让这些虚伪的人该滚就滚,睁大眼睛。以下是我帮大家整理的哲理句子88句,欢迎阅读,希望能够对大家有所帮助。 1、人生是个

    2024-04-15
    58000
  • 这个妮维雅产品上的英文是什么意思?

    smooth sensation丝滑莹亮润肤乳液for irresistibly smooth skin无法抗拒的光滑皮肤smoothes softens tones 光滑,柔软,亮丽with ginkgo,shea,butter and

    2024-04-15
    61500
  • 眼霜的正确使用方法图解

    眼霜的正确使用方法图解  眼霜的正确使用方法图解,许多女性在购买眼霜后,不知道应该怎么用,当你在纠结眼霜用在水乳之前还是之后的时候,可别涂错了,下面为大家分享眼霜的正确使用方法图解。眼霜的正确使用方法图

    2024-04-15
    55700
  • 精华露和精华液的顺序

    精华露和精华液的顺序,其实并没有固定的标准。不同品牌、不同产品之间,使用顺序也可能存在一些差异。但是,一般来说,我们可以这样理解:我们需要明确两者的功能区别。精华液是一种具有高浓度活性成分的保养品,可以为肌肤提供深层营养滋润,在保持肌肤水油

    2024-04-15
    55200
  • 妮维雅防晒霜哪款好用?妮维雅防晒霜哪个好用?

    很多人应该都用过妮维雅的产品,妮维雅是一个比较常见的品牌,它们家的男士洗面奶很受欢迎,现在它们家的唇膏是比较火的,价格不贵而且很好用,夏季当然也少不了防晒霜,妮维雅也是有防晒霜的,那妮维雅防晒霜哪款好用?妮维雅防晒霜哪个好用?1、妮维雅防晒

    2024-04-15
    36600
  • 飞机化妆品能单独托运吗 飞机化妆品能单独托运吗吗

    1、飞机化妆品能单独托运;2、托运对于化妆品并没有过于严格的要求,只要将化妆品重量控制在规定的数值内即可放心托运。另外易燃易爆的啫喱或发胶等类型的洗护用品不能托运,所以坐飞机外出不要携带这类化妆品。3

    2024-04-15
    47200
  • 淡斑精华液排行榜10强品牌有哪些

    2019已经过了大半,这一年,无数新功能新类型的精华产品又席卷了护肤圈。精华产品是护肤品中浓度高、效果明显的单品,明白如何正确选择和使用精华液,护肤效果就事半功倍,今天为大家悉心总结2019美白淡斑精华液排行榜10强,从平价到贵妇,总有一款

    2024-04-15
    45600

发表评论

登录后才能评论
保存