<!DOCTYPE html>
<html><head>
<title>qqqqqqqq</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta content="telephone=no" name="format-detection" />
<link type="text/css" href="lib/normalize.css" rel="stylesheet"/>
<style>
body,#wrapper{min-height:100%;height:100%;overflow:hidden;}
#wrapper section{position:absolute;width:100%;height:100%;min-height:100%;}
section{top:100%;left:0;opacity:0;
}
section.active{top:0;z-index:2;opacity:1; /*transition:all 1s;*/}
section.pre{
-webkit-animation: pre 1s 1;
}
@-webkit-keyframes pre{
0%{top:0;opacity:1}
99%{top:-99%;opacity:1}
100%{top:-100%;opacity:0}
}
section.next{
-webkit-animation: next 1s 1;
}
@-webkit-keyframes next{
0%{top:100%;opacity:1;z-index:2;}
100%{top:0;opacity:1;z-index:2;}
}
.s1{background:#ccc;}
.s2{background:gold;}
.s3{background:pink;}
.s4{background:green;}
.swipeTip{position:absolute;width:3em;line-height:2em;bottom:0;left:0;right:0;margin:auto;z-index:10;text-align:center;
color:#fff;
background:#000;
border-radius:100%;
/**/-webkit-animation: st 1s infinite;
animation: st 1s infinite;
}
@-webkit-keyframes st{
0%{bottom:0;}
50%{bottom:0.8em;}
100%{bottom:0em;}
}
@keyframes st{
0%{bottom:0;}
50%{bottom:0.4em;}
100%{bottom:0em;}
}
</style>
</head>
<body onload="init()">
<div id="wrapper">
<section class="s1 active">
s1
</section>
<section class="s2">
s2
</section>
<section class="s3">
s3
</section>
<section class="s4">
s4
</section>
<div class="swipeTip" id="swipeTip">▲</div>
</div>
<script>
var pfx = ["webkit", "moz", "MS", "o", ""];
function PrefixedEvent(element, type, callback) {
for (var p = 0; p < pfx.length; p++) {
if (!pfx[p]) type = type.toLowerCase();
element.addEventListener(pfx[p]+type, callback, false);
}
}
function init(){
var sections = document.querySelectorAll("section");
var size = sections.length;
var index = 0;
var lock = false;
for(var i=0; i < size; i++){
PrefixedEvent(sections[i], "AnimationEnd", function(){
if(/next/.test(this.className)){
this.className = this.className.replace(/pre|next/g,"").replace(/\s*$/,"") + " active";
lock = false;
}else{
this.className = this.className.replace(/pre|next/g,"").replace(/\s*$/,"");
}
});
}
document.body.addEventListener("touchmove",function(e){
e.preventDefault();
},false);
var startX = 0;
var startY = 0;
var dx = 0;
var dy = 0;
document.getElementById("swipeTip").addEventListener("touchstart",function(e){
this.style.webkitAnimationPlayState = "paused";
startX = e.touches[0].pageX;
startY = e.touches[0].pageY;
});
document.getElementById("swipeTip").addEventListener("touchmove",function(e){
e.preventDefault();
dx = e.touches[0].pageX - startX;
dy = e.touches[0].pageY - startY;
});
document.getElementById("swipeTip").addEventListener("touchend",function(e){
this.style.webkitAnimationPlayState = "running";
if(lock){
return;
}
//垂直方向滚动的简单判断
if(Math.abs(dy) > Math.abs(dx)){
lock = true;
e.preventDefault();
sections[index].className = sections[index].className.replace(/\s*active\s*/g,"") + " pre";
index++;
index = index % size;
sections[index].className = sections[index].className + " next";
}
},false);
}
</script>
</body></html>
分享到:
相关推荐
对于全屏滚动动画,CSS3的转换(Transforms)、动画(Animations)和过渡(Transitions)功能至关重要。例如,使用`transform: translate3d()`可以实现平滑的3D滚动效果,`animation`属性则可定义自定义动画,而`...
HTML5全屏滚动效果是一种常见的网页设计技巧,它利用HTML5的新特性以及CSS3的动画效果,为用户提供沉浸式的浏览体验。全屏滚动通常应用于网站的首页或展示型页面,以展示丰富的视觉内容,引导用户逐步了解信息。下面...
本文将深入探讨如何利用HTML5和CSS3构建一个基于全屏滚动的响应式页面切换效果。 首先,HTML5是新一代的超文本标记语言,引入了许多新的元素和API,为开发者提供了更多构建网页结构和功能的选择。例如,`<header>`...
在本项目中,我们关注的是一个使用Animate.css动画库实现的全屏滚动解决方案,特别针对Vue.js框架,可用于移动端和PC端的应用开发。Animate.css是一个强大的、预定义的CSS动画库,可以为网页添加各种炫酷的动画效果...
一款基于CSS3/HTML5技术的全屏滚动相册,非常不错哦,看上去挺花哨的,左侧显示相册缩略图,右侧是显示大图片,看上去像是一款全屏显示的焦点图那样,不过应用的技术是HTML5,这也是当前的一大趋势,不过测试时候就...
在本项目中,我们主要探讨的是如何利用CSS3和HTML5技术实现一个全屏焦点图片展示效果,其中图片能够随着鼠标的移动而平滑地移动,同时无滚动条设计使得用户体验更加流畅。以下是对这个主题的详细解释: 一、全屏...
总结来说,"jQuery单页全屏滚动插件"提供了一种简单的方法来实现动态的全屏滚动效果,通过JavaScript和CSS的结合,创建出引人入胜的网页体验。理解和掌握这些知识点对于提升网站的用户体验和视觉吸引力具有重要意义...
在全屏滚动效果中,CSS3的transform属性被用来实现页面的平滑滚动,而transition属性则确保了页面在切换时的平滑过渡。此外,通过使用flexbox或grid布局,可以轻松实现页面内容在不同屏幕尺寸下的自适应排列。 ...
实现全屏滚动效果的关键在于JavaScript和CSS3的运用。首先,我们需要设置HTML结构,将每个滚动层(通常是一屏内容)封装在独立的容器元素内,并赋予相应的ID以便JavaScript操作。接着,通过CSS3来定义每个容器的全屏...
总的来说,这个项目综合运用了HTML5的结构化标签、CSS3的样式和动画效果,以及jQuery的便利性,实现了单页面全屏滚动的动态效果。开发者可以根据自己的需求调整源码,自定义滚动动画、页面内容和整体设计,以适应...
支持手机端的CSS3全屏上下滚动视差特效JS代码,非常不错的JS特效代码,支持手机响应式和PC端 ,支持鼠标滚轮上下滚动,这种特效代码非常的流行,特别是在微信微场景的使用中,常见这种特 效代码,上下滚动加上CSS3...
全屏滚动可以通过各种插件和技术实现,比如jQuery、JavaScript、CSS3等。 一、全屏滚动的核心概念 全屏滚动的关键在于将网页内容分隔为多个独立的“屏幕”,每个屏幕对应页面的一个部分。当用户滚动时,页面会平滑...
全屏滚动网页的核心技术主要包括HTML、CSS和JavaScript。HTML用于构建网页的基本结构,CSS用于控制页面的样式和布局,而JavaScript则负责实现滚动效果的动态交互。 1. **HTML 结构**:全屏滚动通常包含多个独立的...
全屏滚动的基本原理是通过JavaScript或CSS3来控制页面内容的分层和滚动。通常,设计师会将每个屏幕或部分作为一个独立的“滚动层”,然后利用JavaScript库如jQuery或专门的全屏滚动插件(例如fullPage.js、...
接下来,**CSS3**在实现全屏滚动加载中扮演关键角色。CSS3的`transform`属性允许元素在屏幕上平移、旋转和缩放,这对于创建过渡动画至关重要。`transition`属性则定义了当元素从一种样式变换到另一种样式时的速度和...
在全屏滚动动画中,CSS3的过渡和动画尤其关键,它们可以平滑地改变元素的样式属性,如位置、大小、颜色等,从而创造出流畅的动态效果。 JavaScript作为客户端脚本语言,常常与HTML5和CSS3结合使用,以增加交互性。...
jQuery全屏滚动插件,通常被称为Parallax Scrolling或Full Page Scrolling,是网页设计中一种流行的视觉效果,它允许用户通过滚动鼠标或触摸屏幕来浏览全屏的、逐层展开的内容。这种技术能创造出深度感和动态交互...
全屏滚动可能利用了CSS3的`transform`和`transition`属性,以及`position: fixed`来固定元素在屏幕中的位置,随着用户滚动而改变显示内容。 再次,JavaScript是一种强大的客户端脚本语言,用于增加网页的交互性和...
本项目涉及的主题是“js css3全屏3D画布图片滑动切换效果”,这是一种利用这两种技术实现的现代网页设计手法。下面将详细阐述相关知识点。 首先,CSS3是层叠样式表的第三个主要版本,它引入了许多新的功能和属性,...