zoukankan      html  css  js  c++  java
  • 仿百度新闻滑块滑动效果

      老早的时候就想着仿一个百度新闻的滑块效果,但是一直没有时间,趁着今天不忙,赶紧动工。整体没用多长的时间,而且也很简单。先来看一个效果图吧。

      首先说一下我的页面结构,最下面的是一个叫做#big_box的div,然后里面有两个元素,一个是小滑块div,一个就是咱们需要显示的数据了,我用的是一个ul,ul里面是li;页面的结构是非常简单的,布局基本上也没有几行代码。这里就不详细的说明了。需要注意的一点就是他们的层级关系要放好。

      然后这里用到的jq事件就是mouseenter和mouseleave这两个事件。然后还有一个延时器,是为了不让鼠标在相邻的li中快速切换的时候,造成小滑块的抖动。好像除了这个就没有其他的了。下面直接把代码发出来吧。

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="UTF-8">
      5         <title>仿百度新闻效果</title>
      6         <link rel="stylesheet" type="text/css" href="css/cssReset.css"/>
      7         <style type="text/css">
      8             li{
      9                 float: left;
     10                 padding: 0 10px;
     11                 height: 100%;
     12                 color: #FFF;
     13                 line-height: 40px;
     14                 cursor: pointer;
     15             }
     16             
     17             .back_red{
     18                 background: rgb(204,0,0);
     19             }
     20             #big_box{
     21                 width: 100%;
     22                 height: 40px;
     23                 background: rgb(1,32,79);
     24                 position: relative;
     25             }
     26             ul{
     27                 margin: 0 auto;
     28                 height: 40px;
     29                 z-index: 10;
     30                 position: absolute;
     31                 left: 0;
     32                 top: 0;
     33                 display: block;
     34             }
     35             #box{
     36                 position: absolute;
     37                 left: 0;
     38                 top: 0;
     39                 height: 40px;
     40                 width: 52px;
     41                 background: rgb(204,0,0);
     42                 z-index: 0;
     43             }
     44         </style>
     45     </head>
     46     <body>
     47         <div id="big_box">
     48             <div id="box">
     49                     
     50             </div>
     51             <ul class="clearfix">
     52                 <li class="back_red">首页</li>
     53                 <li>国内</li>
     54                 <li>国际</li>
     55                 <li>军事</li>
     56                 <li>生活</li>
     57                 <li>社会</li>
     58                 <li>娱乐</li>
     59                 <li>嘿嘿嘿</li>
     60                 <li>女人</li>
     61                 <li>房产</li>
     62                 <li>个性推荐</li>
     63             </ul>
     64         </div>
     65         
     66     </body>
     67     <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
     68     <script type="text/javascript">
     69         $("li").on("click",function(){
     70             $(this).addClass("back_red").siblings().removeClass("back_red");
     71         });
     72         var enter_li = '';
     73         $("li").on("mouseenter",function(){
     74             var this_ = this;
     75             enter_li = setTimeout(function(){
     76                 var li_width = $(this_).width()+20;
     77                 var li_left = 0;
     78                 for(var i=0;i<$(this_).index();i++){
     79                     li_left += Number($("li").eq(i).width()+20);
     80                 }
     81                 $("#box").animate({
     82                     "width":li_width,
     83                     "left":li_left
     84                 },300)
     85             },200)
     86             
     87         })
     88         $("li").mouseleave(function(){
     89             clearTimeout(enter_li);
     90         })
     91         $("ul").mouseleave(function(){
     92             var li_width = $(".back_red").width()+20;
     93             var li_left = 0;
     94             for(var i=0;i<$(".back_red").index();i++){
     95                 li_left += Number($("li").eq(i).width()+20);
     96             }
     97             $("#box").animate({
     98                 "width":li_width,
     99                 "left":li_left
    100             },400)
    101         })
    102     </script>
    103 </html>

      这里面的cssReset.css是格式化css结构,为了方便大家,也贴在下面了。

     1 /* http://meyerweb.com/eric/tools/css/reset/ 
     2    v2.0 | 20110126
     3    License: none (public domain)
     4 */
     5 
     6 html, body, div, span, applet, object, iframe,
     7 h1, h2, h3, h4, h5, h6, p, blockquote, pre,
     8 a, abbr, acronym, address, big, cite, code,
     9 del, dfn, em, img, ins, kbd, q, s, samp,
    10 small, strike, strong, sub, sup, tt, var,
    11 b, u, i, center,
    12 dl, dt, dd, ol, ul, li,
    13 fieldset, form, label, legend,
    14 table, caption, tbody, tfoot, thead, tr, th, td,
    15 article, aside, canvas, details, embed, 
    16 figure, figcaption, footer, header, hgroup, 
    17 menu, nav, output, ruby, section, summary,
    18 time, mark, audio, video {
    19     margin: 0;
    20     padding: 0;
    21     border: 0;
    22     font-size: 100%;
    23     font: inherit;
    24     vertical-align: baseline;
    25 }
    26 /* HTML5 display-role reset for older browsers */
    27 article, aside, details, figcaption, figure, 
    28 footer, header, hgroup, menu, nav, section {
    29     display: block;
    30 }
    31 body {
    32     line-height: 1;
    33 }
    34 ol, ul {
    35     list-style: none;
    36 }
    37 blockquote, q {
    38     quotes: none;
    39 }
    40 blockquote:before, blockquote:after,
    41 q:before, q:after {
    42     content: '';
    43     content: none;
    44 }
    45 table {
    46     border-collapse: collapse;
    47     border-spacing: 0;
    48 }
    49 
    50 .clearfix:after {
    51     content: '.';
    52     height: 0;
    53     display: block;
    54     clear: both;
    55 }

      好了,这小功能做了半个小时就基本上结束了,主要是学习理清自己的思路,发现问题,并且解决问题。

  • 相关阅读:
    ORACLE数据库找回用户密码
    PO、POJO、BO、DTO、VO之间的区别(转)
    Http报头Accept与Content-Type的区别
    java.lang.IllegalStateException: getWriter() has already been called for this response
    利用策略模式实现了同一接口的多个Servicel实现类,如何同时注入Controller
    java.util.Stack类简介
    java为什么要重写hashCode和equals方法?
    PowerDesigner15连接Oracle数据库并导出Oracle的表结构
    解决ODBC连接Oracle数据库报Unable to connect SQLState=08004问题
    IIS 返回 405
  • 原文地址:https://www.cnblogs.com/daniao11417/p/9708743.html
Copyright © 2011-2022 走看看