HTML布局实战(1)-简单的半透明浮层
今天在写页面的时候,遇到一个效果,乍一看挺简单的,可实现过程却费了一番周折,最后还不禁完美。年纪大了,脑子也不大好转, 乘着现在还没有忘记,整理下思路赶紧记下来。
其实效果很简单,如图所示:

默认显示的是一张图片和关注信息,当鼠标浮动到图片上时,显示一个半透明的浮层,并且有两个链接。
当时的第一感觉,这个效果可以用a:hover来实现半透明层的显示隐藏。如果层中只是纯文字,那就可以这样写结构,但现在层里是两个操作链接,html嵌套规则是绝对不允许a标签再嵌套a标签的;如果换其他标签用onclick事件来处理,这样又似乎不太语义化,看来这弹出的效果只能用js来实现了。
其实页面的结构很简单:
- <div class="user_info">
- <a href="#"><img alt="" src="images/pic.jpg" /></a>
- <p><strong>1234</strong>人关注</p>
- <p><a class="attention" href="#">关注</a></p>
- <div class="operate"><a href="#">TA申请的学校</a><a href="#">TA获得的offer</a></div>
- </div>
显示隐藏效果这里就用最简单的方法来实现:
- <script type="text/javascript">
- function openVessel(strId)
- {
- document.getElementById(strId).style.display = "block";
- }
- function closeVessel(strId)
- {
- document.getElementById(strId).style.display = "none";
- }
- </script>
稍作修改后代码如下:
- <div class="user_info"><a onmouseout="closeVessel('operate');" onmouseover="openVessel('operate');" href="#"><img alt="" src="images/pic.jpg" /></a>
- <p><strong>1234</strong>人关注</p>
- <p><a class="attention" href="#">关注</a></p>
- <div id="operate" class="operate" onmouseout="closeVessel('operate');"><a href="#">TA申请的学校</a><a href="#">TA获得的offer</a></div>
- </div>
加上css样式后浏览下效果:
提示:你可以先修改部分代码再运行。
这样虽然实现了效果,但感觉很怪,但鼠标触发图片,显示弹出层后,鼠标悬浮在层上的指针有明显的晃动感,点击链接也感觉很不舒服,为什么这样呢?应该是与前面的onmouseover事件有关系。这样肯定不行,如何能改进呢?
对了,还有效果没有实现,浮层是半透明的,这个貌似是很简单的,用现成的代码试试。
- .css {...; background:#000; filter:alpha(opacity=50); -ms-filter:"alpha(opacity=50)"; -moz-opacity:0.5; -khtml-opacity: 0.5; opacity:0.5;...}
透明效果实现了,但有个问题,透明层里面的元素包括文字部分也变成半透明的,这样还是不完美。再想想,如果我们将文字部分和半透明层分开,然后像photoshop中的图层一样将各部分叠加在一起,正好可以实现我们的效果;这样的缺点就是增加了多余的代码,页面结构更复杂了。
鼠标指针晃动感和点击链接困难的问题还是没有很好的解决,不过可以使用个偷懒的方法,将a标签中的onmouseover和onmouseout事件放在最外层的div容器中,当然最根本的原因是自己的js水平太懒,赶紧学习,争取能早日将这个问题解决掉。如果哪位朋友有更好的方法,欢迎指教。
这是完整的代码:
提示:你可以先修改部分代码再运行。
==============================================
后记:
其实这篇东西是在一个月之前的,写到一半没有完成就这样放在草稿箱里一个月过去了。。。今天整理后台的时候才发现,赶紧发出来,真是惭愧。。。

不错 可以学习一下
晕了晕了,最不适合代码了、
赞一个,走人!
这个很强,学习了。加油。
学习中,感谢博主
画面画的好丑啊
写主要就是为了兼容该死的ie6
很实用很炫啊!不知道在IE6下是否支持。
这样写主要就是为了兼容该死的ie6!
这个貌似有点不懂了。
看看学习学习了·
实战效果啊!
这个似乎拿来作为广告展示还是很不错的
邀请你参加一个针对wordpress主题的博主有奖征文活动,欢迎您参加!
具体的活动地址详见:http://happy.uc55.com/www/bloger/
效果不错,不懂javascript!
关注一下。。。。。。。。。。。。。。。。。。。
博主好厉害。。。
好实战,有劲够味!