体验css+div 之 实现简单浮动层的基本方法

Post by 张美工, 2008-9-22, Views:

  在web2.0之前,还不知道什么是ajax,也不喜欢div+css布局方式,那时候网页布局就是一个个的大大小小的table嵌套起来,只要对属性设置合理,页面样式就中规中矩稳如泰山。

  不过这种布局对窗口尺寸的适应能力极弱,所以不得不每次考虑这次的网站做成1003还是780,而信息的呈现方式也极其死板,比如说在一个类似于list的信息汇总页面,如果用户想了解某一个item的详情,一般必须点击进入,造成一次页面刷新和等待。而现在的流行做法改变了,ajax使用户体验得到极大改善,现在面临上述的类似情形,完全可以采用另一种更加灵活的方式:生成呈现item详细内容甚至相关表单的
浮动层,就像那个在《长尾理论》和《Foundations of Ajax》这两本亚马逊榜首图书中同时提到的著名网站Netflix一样,当用户把鼠标移到一个DVD海报图片上,带箭头的漂亮浮动层就在封面旁边生成了。


  最近我也试着看了看这种效果的基本实现方法,在这里做个笔记:
 
  首先,这个浮动层其实是一个没有内容的div,为了控制div浮动的位置,需要将其style的position设置成absolute,为了使这个层浮动在页面其他元素之上,需要设置z-index为一个比较大的值,浮动层一开始应该是不可见的,即:<div id="popup" style="position:absolute; z-index:100; display:none; background-color:#eeeeee"></div>
 
  好了,可见浮动层事先就在这里,只不过用户看不见。而当事件(比如说鼠标移到DVD海报图片上)被捕捉时,程序就会控制这个浮动层在合适的位置出现了。为此,先应该有一个类似于“DVD海报封面”的东西,比如这可以是一个链接:<a onclick="javascript:generateFloatLayer()">点击生成浮动层</a>,点击后执行下面的函数:
 
function generateFloatLayer(){
 floatArea=document.getElementById("popup");
 floatArea.style.display="none";
 divClose='<div id="close" style="position:absolute; right:10px; top:10px; left:auto; bottom:auto;"><a href="javascript:closeFloat();">X</a></div><br>';
 x=event.clientX + document.body.scrollLeft;
 y=event.clientY + document.body.scrollTop;
 floatArea.innerHTML=divClose+"<div id=\"floatcontent\">some content</div>";
 floatArea.style.border="black 1px solid";
 floatArea.style.left=(document.documentElement.scrollLeft+x-15)+"px";
 floatArea.style.top=(document.documentElement.scrollTop+y-50)+"px";
 floatArea.style.width="300px";
 floatArea.style.height="300px";
 floatArea.style.display="";
}

function closeFloat(){
 floatArea=document.getElementById("popup");
 floatArea.innerHTML="";
 floatArea.style.display="none";
}
 
  这样就行了,当鼠标点击“点击生成浮动层”的链接时,就会以鼠标当前坐标为左上坐标生成一个300x300的灰底黑边浮动层,浮动层右上角是一个关闭浮动层的链接。浮动层的“some content”部分可以用来显示关于当前item的详情,获取这些详情的最佳方式是通过一次异步通信,以ajax方式从服务器取得数据。

  这个浮动层的外观是很简陋的,在大小固定的时候,可以直接用ps做一个尺寸相同的图片作为popup的background,为这个背景图片加上阴影效果或者黑色外发光效果,保存成PNG24的web格式,这样浮动层看起来就真的高于页面了。星夜未眠

相关文章:                                                 
 # Dreamweaver的超级技巧汇总(6)
# Dreamweaver的超级技巧汇总(5)
# Dreamweaver的超级技巧汇总(4)
# Dreamweaver的超级技巧汇总()
# Dreamweaver的超级技巧汇总(2)
# Dreamweaver的超级技巧汇总(1)
# 在线QQ MSN TEL交谈工具代码
# 方便使用的一些小简短input\form代码
# VSS使用手册
# JS表单判断函数代码大全 ()
# JS表单判断函数代码大全 ()
# JS表单判断函数代码大全 

#  I E和火狐的css兼容性问题归总

体验css+div 之 CSS hack:区分IE6,IE7,firefox

体验css+div 兼容标准XHTML的浮动层特效实现

因为编码差异 导致IE6不能正常解析CSS文件

#  商业网站响应用户需求重视与Firefox兼容


#  
frameset 的属性
frameset元素属性详解、浮动框架的制作、超链接与框架的制作


体验css+div 之 SEO

#  40个网页常用小代码

div+css样式几个小精华

网站用户体验--CSS常用小技巧

#  体验css+div css技巧-经典中的经典

#  体验css+div CSS样式表设计的十条技巧

体验css+div 网页切图过程中div+css命名规则

网站用户体验--根据项目需求定义 常用CSS2基本定义例子
#  体验css+div 三种使网站背景图片自动适应浏览器大小的方法


#  搜索

#  创建锚链接

#  如何让单行文本框input与多行文本框textarea背景透明

EditPlus转化文件格式到UTF-8
#  让长字符URL/Email自动换行

HTML特殊字符显示


#  体验css+div定位与table定位代码的差异
体验css+div 之 TBody是什么意思?有什么作用?<TBODY>和<BODY>有和区别?

体验css+div 简单的滑动门效果代码

#  体验css+div 超实用的滑动门效果代码(css和代码都包含在内)

彻底弄懂CSS盒子模式(DIV布局快速入门)

如何把握网页布局
实例详解CSS网页布局原理

体验CSS+DIV 基本布局

#  体验css+div 解决流体布局的问题
#  体验css+div 固定宽度布局、流体布局、弹性布局的优势对比<弹性布局>
#  
体验css+div 固定宽度布局、流体布局、弹性布局的优势对比<流体布局>
体验css+div 固定宽度布局、流体布局、弹性布局的优势对比<固定宽度布局>


#  体验css+div 为什么css+div 会盛行
#  体验css+div中id和class各自的用法及区别

体验css+div 规划、组织和维护样式表

体验css+div 基本列表样式

体验css+div 为样式找到目标


体验css+div 圆角框

体验css+div 层叠和特殊性
#  css之自动换行

#  CSS控制连续英文字母或数字强制换行

#  css使网页图片半透明

体验css+div 背景透明内容不透明的写法
体验css+div 给整个页面添加渐变背景
用css样式控制做成的按钮,取代图片按钮

体验css+div 鼠标经过按钮发生变化效果
体验css+div 文本框自适应窗口宽度
体验css+div 老问题重新讲“怎样使页面整体居中”
体验css+div之图像替换 1.徽标图像替换
体验css+div 使用自动空白边让设计居中
 

 

                                                                                                                   +     

Tags: 体验CSSDIV CSSDIV 浮动层 
分类:css+div | 评论:0 | 引用:0
上一篇:5毛钱的小汤包让他6年狂赚500万(图)
下一篇:体验css+div 之 兼容标准XHTML的浮动层特效实现

或许你还对下面的文章感兴趣

Comments

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

<#template:pagebar#>

最新文章

最新评论

Guest