做项目过程中因为一个效果而引发的感想

  前面一段时间在做一个比较大的项目的前端,当然也比较忙,当中遇到一个问题,今天不得不提一下。

  这个项目是一个比较大的网站,里面用到的前端效果特别多,一层嵌套一层。有一些效果本人是在网上找到后修改下放进去的,因为比较懒,不太想自己写。但有的时候也比较恼火,明明一个很简单的效果,为什么确要用那么多代码去实现呢,本人的原则是,能用一行代码实现的就不要用两行去做,何必呢?

  今天给大家特别推荐一个效果,其实jquery几行代码就会了,初学者都能看懂,也是网页中比较常用的。

  这个效果常常放到网页左下角,默认只显示一点点,点击后显示全部,再点击折叠,相当于推荐内容的效果。

  实现起来也很简单,截图如下

     

  其实本效果主要运用了两个知识点,一个是CSS中的相对定位和绝对定位,另外一个是jquery中的animate功能

  相对定位绝对定位其实不难,只要用position:fixed;将全部内容始终固定在网页左下角就好了,即视觉的左下角,默认距离浏览器左边是-262px即可,只要露出可以点击的按钮即可,其他部分隐藏掉,点击“相关推荐”,这里其实是个a标签,同时触发两个时间,1是背景图片立即变化,而是用animate将整体内容向右移动一段距离,使整个内容恰好显示出来即可,再次点击再向左移动,做一个小小的循环即可实现。主要JS代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery页脚点击展开折叠弹窗效果</title>
<style type="text/css">
*{ margin:0; padding:0; list-style:none;}
body{ font-size:12px;}
.main{ width:260px; height:200px; position:fixed; bottom:60px; border:1px solid #ccc;}
.main2{ width:240px; height:180px; position:relative; padding:10px;}
.main2 ul li{ width:100%; height:22px; line-height:22px; text-align:left;}
.main2 ul li a{ color:#444; text-decoration:none;}
.main2 ul li a:hover{ text-decoration:underline; color:#000;}
.bar{ width:25px; height:105px; position:absolute; right:-25px; top:-1px; background:url(images/mini_bg.png) no-repeat; display:block;}
</style>
</head>
<body>
<div class="main">
  <div class="main2"><a href="javascript:" class="bar"></a>
    <ul>
      <li><a href="http://www.lanrenzhijia.com/jquery/2614.html" target="_blank">窗户玻璃雨滴逼真效果</a></li>
      <li><a href="http://www.lanrenzhijia.com/jquery/2613.html" target="_blank">jQuery Griddler 插件控制图片悬停阴...</a></li>
      <li><a href="http://www.lanrenzhijia.com/tab/2612.html" target="_blank">jquery水平滑动tab选项卡</a></li>
      <li><a href="http://www.lanrenzhijia.com/pic/2611.html" target="_blank">jquery鼠标滑过图片各种文字说明展示效果</a></li>
      <li><a href="http://www.lanrenzhijia.com/banner/2610.html" target="_blank">透明切换tab标签样式焦点图轮播效果</a></li>
      <li><a href="http://www.lanrenzhijia.com/jquery/2609.html" target="_blank">jquery动态页面加载进度条</a></li>
      <li><a href="http://www.lanrenzhijia.com/jquery/2608.html" target="_blank">ns-window--ajax页面动态加载弹出窗口</a></li>
      <li><a href="http://www.lanrenzhijia.com/nav/2607.html" target="_blank">类似天猫、淘宝、京东等购物网站左侧..</a></li>
    </ul>
  </div>
</div>
<script src="js/jquery-1.7.2.min.js"></script>
<script>
$(function(){
$('.main').css('left','-262px');
var expanded = true;
$('.bar').click(function(){
	if (expanded) {
		$('.main').animate({left:'0'},500);
		$('.bar').css('background-position','-25px 0px');

	}else {
		$('.main').animate({left:'-262px'},500);
		$('.bar').css('background-position','-0px 0px');
	}
	expanded = !expanded;
});
});
</script>
</body>
</html>

 最后说一句,其实很简单的代码可以实现的效果,为何网上流传的此等效果代码要那么复杂呢?各位大神解释解释

效果预览:http://demo.lanrenzhijia.com/demo/2013/1015/

posted @ 2013-12-19 14:41  懒人之家  阅读(382)  评论(1编辑  收藏  举报