两个页面之间动画的切换效果

您所在的位置:网站首页 mac如何查看电脑信息 两个页面之间动画的切换效果

两个页面之间动画的切换效果

2023-07-21 13:17| 来源: 网络整理| 查看: 265

一下面的html代码为例:

Comprehensam Mel homero labores ce maluisset sententiae qui,...s dissentiunt ad, mel atqui oblique aliquam te. Next Adversarium Ea qui graece facilisi persequeris. Ne est quodsi atomorum, ... autem forensibus dissentiet nec ne. Copiosae similique ex qui. Next 注意以上代码和之前不同之处:

在每个 article 后面都有一个 a 标签中有 href ,显示为next。看到第一个 article 的 href 等于 #wifi,其表示点击此next时,页面会跳转到第二个article页面;对第二张页面也是一样。所以,接下来,我们要把每一个article元素都显示为一张页面,这样他们之间就会相互跳转。

html, body{ height: 100%; /*使得页面全屏展示*/ } body{ margin: 0; padding: 0; font-family: sans-serif; text-align: center; color: #ffffff; overflow: hidden; /*超出屏幕的部分隐藏*/ position: relative; }

上述代码设置了页面全屏展示,没有内外边距;设置 overflow 属性为 hidden,让超出全屏区域以外的元素不被显示;设置body为相对定位,让两个 article 元素为绝对定位。

article{ position: absolute; width: 100%; height: 100%; padding: 100px; box-sizing: border-box; -webkit-transition: all 1s ease-in-out; transition: all 1s ease-in-out; top: 0; } #tablet{ background: #4ac4aa; left: 0; } #wifi{ background: #ea5634; left: 100%; }

对article进行了共同元素的设置:高度、宽度、边距都是全屏显示;设置 transition 动画效果。 之后又单独设置每一个article,设置不同的背景颜色(便于区分);设置第一个article的 left属性为 0,使其默认显示在屏幕中间;设置第二个article的left属性为100%,使其隐藏在屏幕右侧(相当于不显示)。 到此,效果图如下: 在这里插入图片描述

然后,为了页面和动画更加好看,略微增加一些样式:

h1{ font-size: 4em; border-bottom: 1px solid rgba(255, 255, 255, 0.2); /*设置下边界线*/ padding-bottom: 30px; /*设置下边界线的内边距*/ } p{ color: rgba(255, 255, 255, 0.8); /*设置段落颜色和透明度*/ margin-bottom: 30px; /*设置下边的外边距*/ } a{ color:#ffffff; font-size: 1.5em; padding: 5px 50px; border: 1px solid #ffffff; /*设置边框 粗细、样式、颜色*/ border-radius: 4px; /*设置边框圆角*/ text-decoration: none; /*设置文本无下线*/ }

其中 text-decoration属性设置参考如下: https://www.w3school.com.cn/cssref/pr_text_text-decoration.asp 在这里插入图片描述

接下来,我们借助jQuery来实现切换动画的功能: 在前面代码的基础上,将下面的代码片段添加到 < body > 标签中。

$(document).ready(function(){ $('a').click(function(e){ e.preventDefault(); $('#tablet').toggleClass('move'); $('#wifi').toggleClass('move'); }); }); 代码解释: toggleClass():对设置或移除所选元素的类进行切换。该方法检查每个元素中指定的类。如果不存在则添加类,如果已设置则删除之。这就是所谓的切换效果。。https://www.w3school.com.cn/jquery/attributes_toggleclass.asp ;这里是把 #tablet或#wifi 类切换为 move,鼠标点击 next 后,将执行 move 类里面的内容。而切换后,根据函数用法,再次点击next,又会回到 tablet 页面。

为两个页面中的 a 元素设置了相同过得功能参数。在函数中,首先调用了 click 事件对象的 preventDefault 方法,其目的是阻止超链接的默认锚点跳转动作。接下来,使 tablet 和 wifi 两个页面分别切换名为 move 的类,也就是说当这两个页面没有 move 类时添加这个类,反之去掉这个类(这是为什么再次点击能返回到 tablet 页面的原因)。 move类的作用将使页面在切换后移动到其所设置的位置。

现在,我们设计页面的切换效果是单击 tablet 页面中的 next 按钮时,该页面向左移动到屏幕之外,同时wifi页面从屏幕右侧移动到屏幕中央,完成切换过程。

基于上述动画的描述,我们设置 tablet 的 left 属性为 -100%,将其定位到屏幕以外的位置;而 wifi 的left 属性为0。 创建两个 move类,以便于上面的 js 代码的运行:

#tablet.move{ left: -100%; } #wifi.move{ left: 0; }

现在效果如下图: 在这里插入图片描述

以上基本上已经完成了页面的转换动画设置,但为了更熟练,我们再来试几个其他效果: 1、修改 left 为 top:设置上下滑动页面: #tablet{ background: #4ac4aa; top: 0; } #wifi{ background: #ea5634; top: 100%; } #tablet.move{ top: -100%; } #wifi.move{ top: 0; }

在这里插入图片描述

2、对页面进行缩放。

使用 transform 中的 scale 方法。方法有两个参数:分别是水平方向和垂直方向的缩放值, 0 代表缩放到最小,1 代表缩放到原始大小。可参见:https://www.w3school.com.cn/css3/css3_2dtransform.asp

#tablet{ background: #4ac4aa; -webkit-transform:scale(1, 1); transform:scale(1, 1); } #wifi{ background: #ea5634; -webkit-transform:scale(0, 0); transform:scale(0, 0); } #tablet.move{ -webkit-transform:scale(0, 0); transform:scale(0, 0); } #wifi.move{ -webkit-transform:scale(1, 1); transform:scale(1, 1); }

在这里插入图片描述

3、使用3D动画

可以模仿上面代码,来设计一下3D动画。

#tablet{ background: #4ac4aa; -webkit-transform:rotateY(0deg); transform:rotateY(0deg); } #wifi{ background: #ea5634; -webkit-transform:rotateY(180deg); transform:rotateY(180deg); } #tablet.move{ -webkit-transform:rotateY(-180deg); transform:rotateY(-180deg); } #wifi.move{ -webkit-transform:rotateY(0deg); transform:rotateY(0deg); }

设置了页面绕Y轴旋转,首次切换时 tablet 从 0 度旋转到 -180度隐藏起来, wifi 则从180度旋转到0度完成显示切换。首次切换朝左转圈,然后又朝右转圈。(这里的正负角度值我理解的是旋转的方向)。 只是这样设计会出现一些问题,看下面的效果图: 在这里插入图片描述 会发现页面只是一张在旋转,而且还是反的。这是因为,当 tablet 页面翻过去后,把其背面的页面给显示出来。而我们要的是wifi 的页面,也就是说,现在要去掉这个“反面”。这里我们设置 backface-visibility 为hidden,即翻面后隐藏。

backface-visibility:设置当前页面不面向屏幕时是否可见。对于隐藏旋转后的背面非常有用。https://www.w3school.com.cn/cssref/pr_backface-visibility.asp article{ -webkit-backface-visibility: hidden; backface-visibility: hidden; }

这样设置后,页面变为: 在这里插入图片描述 还可以加入 perspective 属性,是旋转效果看起来更加立体: https://www.w3school.com.cn/cssref/pr_perspective.asp 上面虽说不支持,但是现在浏览器还是可以支持的,对于这个问题,我们先试一试。

body{ -webkit-perspective: 1500px; perspective: 1500px; }

在这里插入图片描述

4、最后,将3D旋转和缩放结合起来

简单的,就把旋转属性和缩放属性同时设置就行了。这里只需要把之前的整合一下即可。

#tablet{ background: #4ac4aa; -webkit-transform:rotateY(0deg) scale(1, 1); transform:rotateY(0deg) scale(1, 1); } #wifi{ background: #ea5634; -webkit-transform:rotateY(180deg) scale(0, 0); transform:rotateY(180deg) scale(0, 0); } #tablet.move{ -webkit-transform:rotateY(-180deg) scale(0, 0); transform:rotateY(-180deg) scale(0, 0); } #wifi.move{ -webkit-transform:rotateY(0deg) scale(1, 1); transform:rotateY(0deg) scale(1, 1); }

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3