html浮动炫酷样式,jQuery和CSS3炫酷表单浮动标签特效

这是一款炫酷的jQuery和CSS3表单浮动标签特效。浮动标签是指输入框中的文字或占位文本在输入框聚焦的时候,以动画的方式浮动到指定的地方。浮动标签特效是一种新颖时尚的动画特效,不仅效果很酷,而且能以明确的方式提示用户该输入框应该填写上面内容,用户体验非常不错。

这个浮动标签特效中共有4种不同的动画效果。分别是Fieldset样式的浮动标签,使用font-size来动画的浮动标签,使用CSS3 transforms和jquery easing来动画的浮动标签和透明度动画浮动标签。

使用方法

HTML结构

这4中浮动标签的HTML结构都使用

嵌套结构,在
中放置元素和它的标签元素,外层使用表单form包裹起来。

First Name

Email

CSS样式

每一中浮动标签的CSS样式各不相同,来看看第一种浮动标签的设计方式。第一种浮动标签方式使用的是Fieldset,在输入框聚焦的时候,占位文本会浮动到Filedset上面。为了美观,整个效果还添加了一层包裹元素以及一个h2文本作为大标题。为元素添加一些节本样式:

main {

width: 500px; margin: 0 auto; padding-bottom: 10px;

background: white; border-radius: 3px; overflow: hidden;

}

main h2 {

font-size: 24px; font-weight: normal;

background: hsl(120, 40%, 95%); color: hsl(120, 40%, 40%);

text-align: center;

padding: 20px 0; margin-bottom: 40px;

}

form表单中的div设置为相对定位。div中的input和label元素设置相同的宽度、高度和行高。在高度设置上,为了修补Firefox浏览器的一个小bug,使用一个计算公式来获取高度。height = 24(lineheight) + 10*2(padding) + 2(border)。

.flp input, .flp label {

width: 400px; display: block;

font: inherit; font-size: 16px; line-height: 24px;

/*fixed height for FF line height issue.

height = 24(lineheight) + 10*2(padding) + 2(border)*/

height: 46px;

border: 1px solid #999;

}

然后input和label元素分别设置各自的不同样式,label元素需要动画,设置为绝对定位方式,并且它的左右padding要比上下padding少2个像素,因为后面需要做单个文字的动画,在.ch中会补足这2个像素。

最后是实际的动画效果的CSS样式。插件初始化的时候,会将所有的字母单独使用包裹起来,做成一个一个的单独字母。在输入框聚焦的时候,js代码会为输入框元素添加.focussed class。实际的字母浮动动画是通过jquery.easing来完成的。

/*label styles*/

.ch {

display: block; float: left;

position: relative; /*for upward animation*/

background: white;

}

.ch:first-child {padding-left: 2px;}

.ch:last-child {padding-right: 2px;}

/*active input label*/

.focussed {

/*when any input is already focussed clicking on it(label) again won't do anything*/

pointer-events: none;

}

JAVASCRIPT

该浮动标签效果中使用jquery.easing来完成实际的动画特效。首先,插件在初始化时将每一个输入框中的文字打散为单个的字母,每一个字母都用元素来包裹起来。接下来当输入框聚焦的时候,使用jquery.easing来完成字母的浮动动画特效。

//breakdown the labels into single character spans

$(".flp label").each(function(){

var sop = ''; //span opening

var scl = ''; //span closing

//split the label into single letters and inject span tags around them

$(this).html(sop + $(this).html().split("").join(scl+sop) + scl);

//to prevent space-only spans from collapsing

$(".ch:contains(' ')").html(" ");

})

var d;

//animation time

$(".flp input").focus(function(){

//calculate movement for .ch = half of input height

var tm = $(this).outerHeight()/2 *-1 + "px";

//label = next sibling of input

//to prevent multiple animation trigger by mistake we will use .stop() before animating any character and clear any animation queued by .delay()

$(this).next().addClass("focussed").children().stop(true).each(function(i){

d = i*50;//delay

$(this).delay(d).animate({top: tm}, 200, 'easeOutBack');

})

})

$(".flp input").blur(function(){

//animate the label down if content of the input is empty

if($(this).val() == "")

{

$(this).next().removeClass("focussed").children().stop(true).each(function(i){

d = i*50;

$(this).delay(d).animate({top: 0}, 500, 'easeInOutBack');

})

}

})

其它几个效果的CSS和JS都分别写在了HTML文件中,原理基本相同,你可以下载来自行研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rto净化效率计算公式_全面剖析 石油化工行业RTO蓄热式焚烧炉的优势要素

在我国的国民经济发展中,石油化工产业是重要的能源基础工业,但是废气的治理问题一直困扰着许多企业。直到RTO蓄热式焚烧炉的面世,为石油化工行业的废气治理带来了新希望。如今,有机废气治理工作越来越受到广泛重视,传统…

python作业:高级FTP程序

要求: 用户加密认证允许同时多用户登录每个用户有自己的家目录 ,且只能访问自己的家目录对用户进行磁盘配额,每个用户的可用空间不同允许用户在ftp server上随意切换目录允许用户查看当前目录下文件允许上传和下载文件,保证文件一…

webpack学习笔记 (一)

一、安装nodejs; 点击打开nodejs官方站点; 点击下图框住的按钮,下周nodejs安装包; 安装下载好的安装包。 安装完毕之后,在cmd中输入node -v查看是否已经安装成功 如果有版本号显示,则代表安装成功&#xf…

将涡轮增压器添加到JEE Apps

我扮演的关键角色之一是在本地社区中传播Akka。 作为讨论的一部分,人们通常会想到的问题/疑问是Akka如何针对编写良好的Java / JEE应用程序提供更好的可伸缩性和并发性。 由于底层硬件/ JVM保持不变,因此参与者模型如何比传统的JEE应用程序发挥更多的功…

python package_python之package定义

一.简单说明 python是通过module组织代码的,每一个module就是一个python文件,但是modules是通过package来组织的。我们平时在简单测试的时候 一般就是几个Python文件存放在同级的目录下,但是当我们开始尝试开发更为复杂的项目时,p…

html 手机端无法拖动地图,关于腾讯地图api的禁止地图拖动问题

禁用滚动和拖动*{margin:0px;padding:0px;}body, button, input, select, textarea {font: 12px/16px Verdana, Helvetica, Arial, sans-serif;}p{width:603px;padding-top:3px;overflow:hidden;}.btn{width:142px;}#container{min-width:600px;min-height:767px;}//初始化函数…

《一起》个人进展——Day07

昨天做了些什么:实现登录界面的美化 今天的计划:还是准备进行与其他界面的融合 遇到的困难:代码了解不够,融合起来会出现bug转载于:https://www.cnblogs.com/gxt-/p/6828131.html

epoll nio区别_【总结】两种 NIO 实现:Selector 与 Epoll

我想用这个话题小结下最近这一阶段的各种测试和开发。其实文章的内容主要还是想总结一下NIO Socket,以及两种不同操作系统实现NIO的方式,selector和epoll。问题应该从服务器端开始说起。我们都写过net包下的socket,用socket的accept方法来等待…

MapReduce的工作原理

一、MapReduce模型框架 MapReduce是一个用于大规模数据处理的分布式计算模型,最初由Google工程师设计并实现的,Google已经将完整的MapReduce论文公开发布了。其中的定义是,MapReduce是一个编程模型,是一个用于处理和生成大规模数据…

react实现多行文本超出加省略号

http://www.css88.com/archives/5206 overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; 根据该文章方法,放在react项目中发现并不能实现,仔细观察发现原来react解析出来的css样…

Google Guava MultiMaps

番石榴 这是系列文章中的第一篇,我将尝试解释和探索Google很棒的Guava java库 。 我在搜索Apache Commons Collections的通用版本时遇到了番石榴(Guava)–我需要一个Bimap并且厌倦了必须使用强制类型转换来填充我的代码–但是我发现要好得多…

qq群 html,我的群组-普通群组.html

我的群组-普通群组$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resou…

查看PLC IP 端口_西门子828D数控系统X130接口通讯怪异现象(X130手动设置的 IP)...

西门子828D数控系统,调试PLC过程中遇到网络通信怪异问题(不能直连非要加个路由器),笔记本电脑的以太网网络直接连接显示网络电缆被拔出,如下图所示:奇怪,怎么出现这种情况了呢,因为我用这台电脑调试过别的P…

基于嵌入式系统的gnash最小库依赖关系

已经对gnash的依赖库作了详细的分析,下边是必须依赖的库:GIF Required libungif-devlibxml2 Required libxml2-devPNG Requir…

git 创建webpack项目_一次create-react-app创建项目升级webpack的流水账

不再赘述为什么要升级webpack4,有兴趣的小伙伴可以看一下 知乎:如何评价webpack4下面撸起袖子开干:克隆项目,新建分支git checkout -b feature_webpack_upgrade# 相当于以下两句的简写git branch feature_webpack_upgradegit chec…

bzoj1263

贪心 n%31 分出一个4&#xff0c;其余用3&#xff0c;n%32&#xff0c;分出一个2&#xff0c;其余用3&#xff0c;然后高精度就行了 #include<bits/stdc.h> using namespace std; const int N 5005; struct BigInt {int len;int a[N];BigInt() { memset(a, 0, sizeof(a)…

c语言volatile_[技术]为什么单片机C语言编程时某一变量有时乱码

最近一个项目里面&#xff0c;在KEIL中用C语言在单片机里面定义了一个状态机全局变量&#xff0c;这个变量随时会改变&#xff0c;用于切换触摸屏的界面&#xff0c;可是程序运行中出现了一个问题&#xff0c;这个状态机号总是出现了被莫名奇妙改变的问题&#xff0c;导致触屏不…

沙箱Java代码

在上一篇文章中&#xff0c;我们研究了如何保护移动Java代码 。 这样做的一种选择是在笼子或沙箱中运行代码。 这篇文章探讨了如何为Java应用程序设置这样的沙箱。 安全经理 Java中支持沙箱的安全性设施是java.lang.SecurityManager 。 默认情况下&#xff0c;Java在没有Se…

微型计算机2017年9月上,2017年9月计算机一级考试WPS Office冲刺题

2017年9月计算机一级考试WPS Office冲刺题2017年下半年计算机一级考试将在9月份进行&#xff0c;为了方便考生备考计算机一级考试。下面是小编为大家带来的计算机一级考试WPS Office冲刺题&#xff0c;欢迎阅读。冲刺题一&#xff1a;1、PowerPoint 演示文稿和模板的扩展名是【…

七. 多线程编程5.创建多线程

到目前为止&#xff0c;我们仅用到两个线程&#xff1a;主线程和一个子线程。然而&#xff0c;你的程序可以创建所需的更多线程。例如&#xff0c;下面的程序创建了三个子线程&#xff1a;// Create multiple threads.class NewThread implements Runnable { String name; /…