移动端 滑动框架

HTML:

<!DOCTYPE html>
<html>
<head>
<script src="js/v.js"></script>
<script src="js/jquery-2.1.1.min.js"></script>
<link rel="stylesheet" href="css/main.css">
<script src="js/main.js"></script>
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<div id="container">
<div id="next" class="next"></div>
<div id="music"></div>
<div id="wrap">
<!--第一页-->
<div class="page" id="p0">
</div>
<!--第二页-->
<div class="page" id="p1">
</div>
<!--第三页-->
<div class="page" id="p2">
</div>
<!--第四页-->
<div class="page" id="p3">
</div>
<!--第五页-->
<div class="page" id="p4">
</div>
</div>
</div>
<audio id="mp3" src="mp3/bg.mp3" autoplay="true" loop>
</audio>
</body>
</html>



css:

@charset "utf-8";
html,body{margin:0;width:100%;height:100%;overflow:hidden;}
body{
width: 100%;
overflow: hidden;
background: #000;
}
#container{
width: 100%;
height: 100%;
overflow: hidden;
}
#wrap{
width: 100%;
height: 100%;
}
.page{
position: relative;
float: left;
width: 100%;
overflow: hidden;
background-position: center;
background-repeat: no-repeat;
}
#music{position:absolute; width:44px; height:44px; right:30px; top:80px; background:url(../img/music.png) no-repeat; z-index:999;}
#p0{background:#f00;}
#p1{background:#0f0;}
#p2{background:#00f;}
#p3{background:#ff0;}
#p4{background:#0ff;}
#p5{background:#f0f;}



js:

$(function(){
$(document.body).bind(‘touchmove‘, function (event) {
event.preventDefault();
});
//获取屏幕高度
var sh = window.innerHeight;
//页面高度为屏幕高度
$(".page").height(sh);
//获取page数量
var s = $(".page").length;
var ey = 0;//
var cur = 0;
var dy, ct;
var os = 50, ts = 30;//滑动超过os像素或间隔时间小于dt
//触摸事件
var mytouchele = document.getElementById("wrap");
mytouchele.addEventListener("touchstart", touchStart, false);
mytouchele.addEventListener("touchmove", touchMove, false);
mytouchele.addEventListener("touchend", touchEnd, false);
function touchStart(e){
ct = new Date().getTime();
ey = e.touches[0].pageY;
};
function touchMove(e){
e.preventDefault();
dy = e.touches[0].pageY;
if(cur == 0 && dy > ey){ return false;}
if(cur == s - 1 && -cur * sh - (ey - dy) < sh - s * sh){ return false;}
$("#wrap").css({
marginTop: -cur * sh - (ey - dy) + "px"
});
};
function touchEnd(e){
console.log(cur);
dt = new Date().getTime() - ct;
if(dy == 0){return false;}
if(dy - ey < -os || (dy - ey < 0 && dt < ts)){
dy = 0;
go_down();
return false;
}
if(dy - ey > os || (dy - ey > 0 && dt < ts)){
dy = 0;
go_up();
return false;
}
dy = 0;
slide(cur);

}
//执行滑动动画
function slide(x){
$("#wrap").animate({
marginTop: -x * sh + "px"
}, "fast");
cur = x;
bind(cur);
}
//向上滑动
function go_up(){
if(cur > 0){
slide(cur - 1);
}else{
slide(cur);
}
}
//向下滑动
function go_down(){
if(cur < s - 1){
slide(cur + 1);
}else{
slide(cur);
}

}
bind(0);
$("#music").addClass("music");
function bind(cur)
{
if(cur==0){

}else if(cur==1){

}else if(cur==2){

}else if(cur==3){

}else if(cur==4){

}else if(cur==5){

}
}
//音乐事件
var plays=document.getElementById("mp3");
$("#music").bind("touchstart",function(){
if(plays.paused){
plays.play();
$("#music").addClass("music");
}else{
plays.pause();
$("#music").removeClass("music");
}
})
});

时间: 2024-08-06 01:45:43

移动端 滑动框架的相关文章

初试 vue2.0——9.项目开发_better-scroll 实现移动端滑动2

写在前面的话: 上一篇文章实现了滑动效果,这部分来试试左右联动效果的实现方法吧 九.better-scroll + vue2.0 实现移动端滑动2--左右联动 效果:滑动右侧时,左侧也能有相应的变化:点击左侧时,右侧也能自动定位到相应的位置. 如下图所示界面,左侧为分栏,右侧为分栏详情. 滑动右边使左边联动的大概的思路: 1)要知道右侧的列表中,每一个分栏所占的高度,存进一个数组中. 2)实现左边联动,则必须要监控 "scroll"事件,获取其高度 3)将scroll 的高度与右侧分栏

微信公众号 几种移动端UI框架介绍

微信公众号开发,主要是移动端网页的页面开发,在这里推荐3个移动端UI框架:WeUI.SUI和Mint UI. 1. WeUI 1.1 WeUI WeUI是微信官方设计团队为微信 Web 开发量身设计,可以令用户在HTML5应用中的使用感知更加统一. 组件包含button.cell.dialog. progress, toast.article.icon等等. 资源 官方Demo:https://weui.io/ Github:https://Github.com/weui/weui (★1340

发布一款html5移动端scroll框架:xScroll

想写这个框架很长时间了,一直没有时间,断断续续写了一些,端午节这两天宅在家把它完成了. 兼容ie9+以上windowphone,android,ios等支持现代浏览器的移动端. 支持多层嵌套scroll和页面多scroll,随时改变宽度和改变内容对scroll无影响,开发者只需关注内容和业务逻辑. 废话少说,以下是github地址和demo地址,欢迎大家拍砖. github: https://github.com/ouxingzhi/xscroll demo: http://ouxingzhi.

移动端网页框架

为了更好的提升用户体验,移动端逐渐出了许多的移动端的框架,比如Sencha Touch.JQTouch.Jquery-moblie.jqMobi等等.这些框架都有优缺点,不同的框架应用在不同的项目中.现简单阐述一下各框架的优缺点: 一.Sencha Touch框架是一个重量级的框架.它上手较难,代码复杂,并且需要较强的程序基础才能学习,最开始的时候因为一个项目,想使用Sencha Touch框架,后来工期实在太紧张,根本没时间学习它并使用.所以最后转投其他框架.这个框架兼容性很高,运行起来的速度

移动端web框架(HTML5手机框架)

淘宝SUI Mobile框架 官网地址:http://m.sui.taobao.org/ SUI Mobile 是一套基于 Framework7 开发的UI库.它非常轻量.精美,只需要引入我们的CDN文件就可以使用,并且能兼容到 iOS 6.0+ 和 Android 4.0+,非常适合开发跨平台Web App. 轻量的UI库 SUI Mobile 非常轻量,核心库压缩Gzip后的JS.CSS网络传输体积总共只有52K,却提供了20+个常用的组件. 对于只有HTML&CSS的组件,你只需要复制HT

移动端滑动方向判断

移动端滑动方向判断,主要是判断利用x,y轴方向的增量,哪个轴增的快,就是哪个方向. 在touchstart中获取初始点,startX, startY; 在touchmove中获取移动点,moveX, moveY 计算两者的差 deltaX = moveX - startX;  deltaY = moveY - startY; 之后累加deltaX和deltaY: distX += Math.abs(deltaX) distY += Math.abs(deltaY) if (distX > dis

跨界!Omi 发布多端统一框架 Omip 打通小程序与 Web 腾讯开源 2月28日

https://mp.weixin.qq.com/s/z5qm-2bHk_BCJAwaodrMIg 跨界!Omi 发布多端统一框架 Omip 打通小程序与 Web 腾讯开源 2月28日 原文地址:https://www.cnblogs.com/yuanjiangw/p/10774063.html

VUE PC端框架和移动端UI框架(收集)

在学习Vue的过程之中,我发现不管是 BAT 大厂,还是创业公司,Vue 都有着广泛的应用,而且框架层出不穷,学习文档也越来越多,Vue也越来越受欢迎.下面是我整理的 Vue PC端和移动端的UI框架,建议收藏,方便以后学习的时候拿出来查看. Vue PC端框架 1. Element 中文文档:http://element-cn.eleme.io/#/zh-CN github地址:https://github.com/ElemeFE/element 2. iView 中文文档:https://w

关于移动端滑动手势

背景: 基于要尝试的移动端项目需要有一个通过上拉下滑手势达成加载不同数据的功能,其涉及到滑动手势和ajax数据加载方面的知识点.故对整个实现过程做一个记录整理.个人JS功底有限,看了诸多例子和对于移动端手势知识点梳理的技术博客才对做到了对功能的实现.并且也在这个过程中,才初步了解到了移动端框架Zepto.js._(:з」∠)_ 当然,最后还是选择了尽量用原生来实现这一个功能,只因为这样才能够对整个功能实现原理理解上更充分些,想尽量少依赖于插件.不过到了数据加载上,因为时间成本等原因最后还是用上了