基于mootools1.3创意模仿表单

效果预览如下:


HTML代码:

复制代码
<div class="slider">
<label>Name</label><input type="text" />
</div>
<div class="slider">
<label>Street</label><input type="text" />
</div>
<div class="slider">
<label>E-mail</label><input type="text" />
</div>
复制代码

 
CSS代码:注意div.slider相对定位,label改为块级元素,绝对定位.这样通过改变label的left属性,实现效果.

*{margin:0;padding:0;font-family: sans-serif,微软雅黑,Microsoft YaHei,Helvetica,Tahoma,StSun,宋体,SimSun;line-height: 1.5em;font-size: 14px;}
.slider
{position:relative;margin:0 0 10px 50px;}
div.slider label
{position:absolute;display:block;margin:1px 0 0 2px;padding:2px;}
input[type="text"]
{ width:300px; border:1px solid #999; padding:5px; -moz-border-radius:4px;border-radius:4px;-webkit-border-radius:4px; }
input[type="text"]:focus
{ border-color:#777; }

    JS代码:JS也没什么注意的了,大概就是循环添加事件而已.

复制代码
<script type="text/javascript">
var labelSlider = {
data: {
tween: {
property:
"left",
duration:
300
},
set:
-50
},
start:
function () {
this.divContainers = $$("div.slider");
for (var i = 0; i < this.divContainers.length; i++) {
this.divContainers[i].getElement("label").set("tween", this.data.tween);
this.divContainers[i].getElement("input").addEvents({
focus:
this.left.bind(this, [i]),
blur:
this.goback.bind(this, [i])
});
}
},
left:
function (at) {
this.divContainers[at].getElement("label").get("tween").start(this.data.set);
},
goback:
function (at) {
if (this.divContainers[at].getElement("input").value == "") {
this.divContainers[at].getElement("label").get("tween").start(0);
}
}
};
labelSlider.start();
</script>
复制代码
 学校的时光还是那么无聊,还要多久才能走出这个悲剧的环境.
等下一站天亮吧!
posted @   !nothing  阅读(1563)  评论(7编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示