• 第185天:百度星座案例


    一、百度星座案例

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>Document</title>
      6 </head>
      7 <style type="text/css">
      8     *{margin: 0 auto;padding: 0;list-style: none;border: 0; text-align: center;}
      9     body{background: url(baidu/bg.jpg); -webkit-background-size: cover;
     10         background-size: cover;}
     11     .logo{margin-top: 30px; display: block;}
     12     .links{width: 740px; margin: 0 auto;}
     13     .links a{color: #fff; margin-right: 10px;}
     14     .search{margin-bottom: 40px; margin-top: 10px;}
     15     .search input{width: 537px; height: 40px;}
     16     .search button{width: 104px; height: 40px;}
     17     .container{width: 911px;}
     18     .menu{width: 80px; height: 318px; float: left; background: rgba(0,0,0,0.4);}
     19     .menu span{width: 80px; height: 35px; line-height: 35px; color: #fff; display: inline-block; font-weight: bold; font-size: 14px;}
     20     .menu span.choose{background: rgba(255,255,255,0.6) url(baidu/menu.png);}
     21     .card{width: 813px; height: 318px; float: right; background: rgba(255,255,255,0.6)  url(baidu/xingzuo.png);}
     22 
     23     .xingzuo{padding: 20px;}
     24     .item{
     25         margin-right: 10px;
     26         margin-bottom: 25px;
     27         cursor: pointer;
     28         width: 170px;
     29         height: 52px;
     30         float: left;
     31         position: relative;
     32     }
     33     .no-mr{margin-right: 0;}
     34     .image{
     35         float: left;
     36         width: 52px;
     37         height: 52px;
     38         background: url('xingzuo/xingzuo.png') no-repeat 0 52px;
     39     }
     40     .description{
     41         width: 115px;
     42         height: 43px;
     43         border: 2px solid #f1f1f1;
     44         border-left: none;
     45         float: left;
     46         padding-top: 6px;
     47     }
     48     .description p{
     49         padding-left: 8px;
     50         width: 90px;
     51         height: 18px;
     52         line-height: 18px;
     53         color: #222;
     54         text-align: left;
     55     }
     56     .mark{
     57         display: none;
     58     }
     59     .selected .mark{
     60         position: absolute;
     61         top: 0;
     62         right: 0;
     63         width: 30px;
     64         height: 30px;
     65         background: url('xingzuo/xingzuo.png') no-repeat 0 -624px;
     66         display: block;
     67     }
     68     .is-hover .description{
     69         border-color: #389CFF;
     70         border-width: 2px;
     71     }
     72     .num-0 .image{
     73         background-position: 0 0;
     74     }
     75     .num-1 .image{
     76         background-position: 0 -52px;
     77     }
     78     .num-2 .image{
     79         background-position: 0 -104px;
     80     }
     81     .num-3 .image{
     82         background-position: 0 -156px;
     83     }
     84     .num-4 .image{
     85         background-position: 0 -208px;
     86     }
     87     .num-5 .image{
     88         background-position: 0 -260px;
     89     }
     90     .num-6 .image{
     91         background-position: 0 -312px;
     92     }
     93     .num-7 .image{
     94         background-position: 0 -364px;
     95     }
     96     .num-8 .image{
     97         background-position: 0 -416px;
     98     }
     99     .num-9 .image{
    100         background-position: 0 -468px;
    101     }
    102     .num-10 .image{
    103         background-position: 0 -520px;
    104     }
    105     .num-11 .image{
    106         background-position: 0 -572px;
    107     }
    108 </style>
    109 <script src="jquery-1.11.3.js"></script>
    110 <script src="mine.js"></script>
    111 <script src='template.js'></script>
    112 <script type="text/javascript">
    113 //    使用对象描述数据
    114     var data = [
    115         {
    116             name:'白羊座',
    117             time:'3.21-4.19'
    118         }
    119         ,{
    120             name:'金牛座',
    121             time:'4.20-5.20'
    122         }
    123         ,{
    124             name:'双子座',
    125             time:'5.21-6.21'
    126         }
    127         ,{
    128             name:'巨蟹座',
    129             time:'6.22-7.22'
    130         }
    131         ,{
    132             name:'狮子座',
    133             time:'7.23-8.22'
    134         }
    135         ,{
    136             name:'处女座',
    137             time:'8.23-9.22'
    138         }
    139         ,{
    140             name:'天秤座',
    141             time:'9.23-10.23'
    142         }
    143         ,{
    144             name:'天蝎座',
    145             time:'10.24-11.22'
    146         }
    147         ,{
    148             name:'射手座',
    149             time:'11.23-12.21'
    150         }
    151         ,{
    152             name:'摩羯座',
    153             time:'12.22-1.19'
    154         }
    155         ,{
    156             name:'水瓶座',
    157             time:'1.20-2.18'
    158         }
    159         ,{
    160             name:'双鱼座',
    161             time:'2.19-3.20'
    162         }
    163     ];
    164 </script>
    165 <script type="text/javascript">
    166     $(function(){
    167         //面向对象编程  封装单个星座的各种操作
    168        var Xingzuo=function(data,num){
    169           //数据
    170           this.data=data;
    171           //单个星座的容器 动态生成div并添加样式
    172           this.dom=$('<div></div>').addClass('item num-' +num);
    173           //星座编号
    174           this.num=num;
    175           //定义一个变量保存对象当中的临时变量
    176           this.config={
    177              jqueryContainer:$('.xingzuo')
    178           };
    179           this.init();
    180        };
    181        Xingzuo.prototype={
    182           init:function(){
    183              this.bindDom();
    184              this.bindEvents();
    185           },
    186           bindDom:function(){
    187             var str='<div class="image"></div>'+
    188                         '<div class="description">'+
    189                         '<p class="name">{{name}}</p>'+
    190                         '<p class="time">{{time}}</p>'+
    191                         '<div class="mark"></div>'+
    192                         '</div>';
    193               this.dom.html($$.artTemplate(str, this.data)).appendTo(this.config.jqueryContainer);
    194           },
    195           bindEvents:function(){
    196              var that=this;
    197              this.dom.on('mouseenter',function(){
    198                 that.dom.addClass('is-hover');
    199              });
    200              this.dom.on('mouseleave',function(){
    201                 that.dom.removeClass('is-hover');
    202              });
    203              this.dom.on('click',function(){
    204                 that.dom.toggleClass('selected');
    205              })
    206           }
    207        };
    208 
    209        //实例化12个星座  每次实例化都自动调用init函数
    210        for(var i=0,len=data.length;i<len;i++){
    211           new Xingzuo(data[i],i);
    212        }
    213     })
    214 
    215 </script>
    216 <body>
    217 <img class="logo" width="270" src="baidu/logo_white.png" alt="">
    218 <p class="links">
    219     <a href="http://news.baidu.com" target="_blank">新闻</a>
    220     <a href="http://www.baidu.com" target="_blank">网页</a>
    221     <a href="http://tieba.baidu.com" target="_blank">贴吧</a>
    222     <a href="http://zhidao.baidu.com" target="_blank">知道</a>
    223     <a href="http://music.baidu.com" target="_blank">音乐</a>
    224     <a href="http://image.baidu.com" target="_blank">图片</a>
    225     <a href="http://v.baidu.com" target="_blank">视频</a>
    226     <a href="http://map.baidu.com" target="_blank">地图</a>
    227     <a href="http://baike.baidu.com" target="_blank">百科</a>
    228     <a href="http://wenku.baidu.com" target="_blank">文库</a>
    229     <a href="http://www.baidu.com/more/" target="_blank">更多&gt;&gt;</a>
    230 </p>
    231 <div class="search">
    232     <input type="text"><button>百度一下</button>
    233 </div>
    234 <div class="container">
    235     <div class="menu">
    236         <span>导航</span>
    237         <span>音乐</span>
    238         <span>新闻</span>
    239         <span class="choose">星座</span>
    240     </div>
    241     <div class="card"><div class="xingzuo"></div></div>
    242 </div>
    243 </body>
    244 </html>

    链式访问方式

     1 <script type="text/javascript">
     2 
     3     $(function(){
     4         //    面向对象编程 -- 封装单个星座的各种操作
     5         var Xingzuo = function(data, num){
     6             /*数据*/
     7             this.data = data;
     8             /*单个星座的容器*/
     9             this.dom =$('<div></div>').addClass('item num-' + num);
    10             /*星座编号*/
    11             this.num = num;
    12             /*定义一个变量保存对象当中的临时变量*/
    13             this.config= {
    14                 jqueryContainer: $('.xingzuo')
    15             }
    16             this.init();
    17         };
    18         Xingzuo.prototype = {
    19             init : function(){
    20                 this.bindDOM();
    21                 this.bindEvent();
    22             }
    23             ,bindDOM : function(){
    24                 var str = '<div class="image"></div>' +
    25                         '<div class="description">' +
    26                         '<p class="name">@(name)</p>' +
    27                         '<p class="time">@(time)</p>' +
    28                         '<div class="mark"></div>' +
    29                         '</div>';
    30                 this.dom.html($$.formateString(str, this.data), true).appendTo(this.config.jqueryContainer);
    31             }
    32             ,bindEvent : function(){
    33                 var that = this;
    34                 /*悬浮变色*/
    35                 /*以前怎么做??tab的排他思想:先将所有的设置为默认,然后再将当前设置为选中状态*/
    36                 /*现在怎么做*/
    37                 /*只考虑单个对象*/
    38                 /*单个对象鼠标悬浮:单个对象鼠标离开*/
    39                 that.dom.on('mouseenter', function(){
    40                     that.dom.addClass('is-hover');
    41                 }).on('mouseleave', function(){
    42                     that.dom.removeClass('is-hover');
    43                 })
    44 
    45                 /*点击*/
    46                 that.dom.on('click', function(){
    47                     that.dom.toggleClass('selected');
    48                 })
    49             }
    50         };
    51 
    52 //        实例化12个星座 -- 每次实例化都自动调用init函数
    53         for(var i = 0, len = data.length; i < len; i++){
    54             new Xingzuo(data[i], i);
    55         }
    56     })
    57 </script>

    运行效果:

     

  • 相关阅读:
    response.setContentType()的作用及参数
    MyEclipse的一些设置
    web项目更改文件后缀,隐藏编程语言
    IntelliJ IDEA 部署远程服务
    java操作cookies
    Java 处理图片 base64 编码的相互转换
    递归与非递归二分查找实现
    js实现url链接encode加密
    mysql 中 SQL_CALC_FOUND_ROWS 功能
    Java 微信登录授权后获取微信用户信息昵称乱码问题解决
  • 原文地址:https://www.cnblogs.com/le220/p/8511660.html
Copyright © 2020-2023  润新知