响应式开发
第一步: 添加 viewport meta 标签
**
在head标签内添加 viewport meta标签
<meta name="viewport" content="width=device-width, initial-scale=1.0">
第二步:使用 Media Queries
目的:为不同特性的浏览器视窗使用不同的样式代码
使用的2种方法
样式断点
Media Queries所使用的查询参数的临界值可以称为 样式断点
重要技巧:
- 依据目标设备的分辨率,制定合适的断点,并为不同的断点定制必要的css样式
- 移动端优先的页面,可以使用min-width查询参数从小到大来定义断点
**
示例网站:
第三步:使用viewport 单位 以及 rem
demo
https://jdc.jd.com/demo/ting/vw_layout.html#
1.仅使用vw作为css长度单位
2.vw 搭配 rem
rem核心:根据视窗大小变化动态改变根元素字体大小
scss 语法
/*
rem单位换算 750px-75px 640px-64px
*/
$vw_fontsize:75; //iphone6 尺寸的根元素大小基准值
@function rem($px){
@return ($px / $vw_fontsize) * 1rem
}
/*
根元素大小使用 vw 单位
*/
@vw_design: 750;
html {
font-size:($vw_fontsize / ($vw_design/2)) * 100vw
//通过 Media Queries 限制根元素最大最小值
@media screen and (max-width:320px){
font-size:64px
}
@media screen and (min-width:540px){
font-size:108px
}
}
/*
body也增加最大最小宽度限制,避免默认100%宽度的block元素跟随body过大过小
*/
body{
max-width: 540px;
min-width: 320px;
}
滑屏应用开发
主流滑屏组件 (如Swiper)
中文网站
https://www.swiper.com.cn/
swiper 实践
文档
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- cdn 加载可能不稳定 -->
<link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.css">
<script src="https://unpkg.com/swiper/js/swiper.js"> </script>
<style>
.swiper-container {
width: 600px;
height: 300px;
background: blanchedalmond;
}
</style>
</head>
<body>
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">1</div>
<div class="swiper-slide">2</div>
<div class="swiper-slide">3</div>
</div>
<!-- 分页器 -->
<div class="swiper-pagination"></div>
</div>
<!-- 初始化最好是挨着 </body> 标签 -->
<script>
var mySwiper = new Swiper('.swiper-container',{
direction:'vertical', //垂直切换选项
loop:true, //循环模式
//是否需要分页器
pagination:{
el:'.swiper-pagination'
}
})
</script>
<!-- 或者需要 window.onload = function(){} -->
</body>
</html>
核心 手势判断
- 判断用户的手势动作
- 根据手势动作执行相应滑屏过渡动画
https://hammerjs.github.io/
中文文档 https://xinyufeng.net/cnhammerjs/getting-started/
滑屏过渡动画
html5 + swiper 快速生成
https://github.com/o2team/elf