天给大家带来是一个金属的开关,大家看一下,别看着操作很简单但是很复杂的,包括这里面没有用任何的图片和图标,纯用css写出来的,大家可以看一下。
解析一下代码区域,我的开发工具是h pro x开发uni up。
·首先用个vivo式的容器定一个容器,里面放了个第二层的vivo式的容器,里面弄了个老本开关标签,弄一个开关手柄。
·在unif中应该知道是什么意思,就是随着真假而变换样式,两个,大家看这个颜色就应该知道了,是背景滑动的时候,下面就是位置的变化。
·gs部分定义了个flash,在进行点击的时候从真变假,从假变成真的切换,样式就跟着真假进行变换的。
·cs部分都是提前定义好的固定的样式,这是整体的。
·这就是开关容器的基本的设定,大家可以看到它的大小、宽高,取消底部外编剧的,把这个删掉,其实也没什么用,前面多写了,可以删掉。
·这个是开关标签样式的设定,就是颜色根据真假进行变化,说白就是固定的,除了颜色以外其他都是固定的。
·这个就是开关手柄,就金属的手柄的样式,大家可以牢记一下,可以自己动手去写一下。
其实就这么几行,cs部分基本上都是固定的固定色,只有这里进行了真假的切换和样式的切换才形成动态的效果。
喜欢的可以点赞收藏一下,想要这个元代码的可以找我唠嗑或者点击下方都可以,多多会给你们发送,但是我还是点个自己动手去写,我还是建议,今天就先讲到这。
天来介绍一款类tab切换效果的插件,方便大家在项目中使用!
效果图:
切换时候左右有过渡效果。
实现代码:
html:
js:
年做了大量的 HTML5 项目,遇到了很多坑。在这个过程中学到了一些之前不具备的知识,所以这篇文章就简单分享一下这方面的话题。
传统的MPA
首先,说一个比较古老的东西,叫做 MPA。
MPA 的全称是 Multi-page Application,意思是整个应用(站点)由多个完整的 html 构成。用户在页面 1 点击跳转,需要向服务端请求页面 2,请求成功后渲染。而用户返回时,相当于是点击了浏览器的返回,页面退回到之前的历史记录,并重新加载出来。
在这样的模式下,页面间切换慢、不流畅的问题比较突出,尤其是在移动端。
同时,它还产生了几个小问题:
SPA
随着对移动端体验需求的提高以及技术的进步,另一种模式 SPA(Single-page Application)逐渐成为主流。
SPA 简单来说,就是原来在 MPA 中的多个 html,现在被放在了一个 html 中,并被分成若干个片段。跳转、返回的本质变成了分段的「隐藏」与「显示」。跳转不需要反复对服务端进行请求,从而使得页面与页面之间切换更加快速流畅。
在这样的机制下,跳转与返回完全由代码控制,所以可以通过代码定义页面转场的效果、返回。
在设计转场动画时,我们需要留意的是导航栏是 Native 的还是 HTML5 的。如果导航栏是 Native 的,那 HTML5 页面不包括导航栏,它相当于是网页外的元素,不在转场效果的设计范围内。
WebView
说 HTML5 的跳转,就不得不说 WebView。简单来说,WebView 是在 App 中用于显示 web 内容的容器。上文提到的 MPA 和 SPA,都装在了这个叫做 WebView 的容器中。
用户点击页面中的元素进行跳转,除了前面的两种方式外,还有第三种:新打开 WebView 的方式。在这样的方式下,跳转的本质是 HTML5「告诉」Native,由 Native 执行打开新 WebView,并在新 WebView 中加载页面。
因为 Native 的机制,打开新 WebView 的同时,之前的 WebView 会被自然、完整地保留。所以这时,之前的几个问题就变为:
不过需要注意的地方是,打开新 WebView 是一个资源消耗比较大的操作。如果我们在设计一个流程时,需要比较多的连续使用这种方式,需要和研发同学进行充分的沟通。
比较特殊的Replace
前述的三种跳转,都会产生历史记录。MPA、SPA 的历史记录是在 HTML5 中产生,新开 WebView 中的记录是在 Native 中产生。
在 MPA 或 SPA 中,如果跳转时使用 Replace 方法,它会用新页面替换之前的页面,历史记录中没有之前页面的记录。
这是一种特殊的跳转方式,在设计一些不可逆的流程时可考虑使用。
多页面回退
了解了上述的几种机制后,我们来看一个小的应用场景──多页面回退。
我们在实际业务中,经常会有这样的需求。假设我们有 1、2、3 三个页组成的一个流程,在页面 3 上有个「完成」按钮点击回到页面 1。在不同的交互模式下,实现这样的跳转有着不同的机制。
1. SPA模式下的正常跳转
这种模式是 3 个页面都在一个 WebView 中。点击页面 3 中的「完成」按钮,回退 -2 ,即回退 2 步历史记录,到页面 1。
2. 新打开WebView
打开新 WebView 又分三种方式。
如果我们把 3 个页面,拆分到 2 个 WebView 中,如下图,点击完成按钮,即关闭自身所在的 WebView。
同样是打开新的 WebView,如果我们按如下图的方法拆分会稍微复杂。这时点击完成按钮,首先关闭自身所在的 WebView,当页面 2「意识」到自己重新被展现时,自动退回 1 步到页面 1。
每次打开新的 WebView,这时点击完成,回退的本质是 HTML5「告诉」Native 关闭多个 WebView。需要特别注意的是,HTML5 中实现这种方式不是天然具备的,它需要 Native 具有一次关闭多个 WebView 的能力。所以我们在设计方案时,需要了解清楚自家的 Native 是否有这样的能力。
总结
以上,简单说了几种 HTML5 的跳转方式。这些跳转方式,没有绝对的对与错,我们在设计方案时,需要根据实际的业务需求与技术的限制,来整体考虑解决方案。
根据个人经验,也有几点小帖士分享给大家:
*请认真填写需求信息,我们会在24小时内与您取得联系。