zoukankan      html  css  js  c++  java
  • 一次web网站总结

    之前公司是用flash做的这个网站,现在因为访问速度过慢或者别的原因,由我来用html5重新写过,排版布局和之前的都是一样的。

    网页总体需要实现以下功能:

    (1)背景图片轮播

    (2)文字动画的实现

    (3)导航条动画效果

    (4)设计图片的展示效果(不知道怎么写,其实我还没弄明白它的实现原理,差不多就是图片的无缝滚动吧)

    我主要是将前端布局实现,后台由php实现。现在我主要是总结一下本次学习到的知识。高手可以指点一下我这个菜鸟。

    1、背景图片轮播html代码:

     

    1  <!--背景切换-->
    2     <div class="slide">
    3         <ul>
    4             <li style="background-image:url(images/home/bg1.jpg) "></li>
    5             <li style="background-image:url(images/home/bg2.jpg) "></li>
    6             <li style="background-image:url(images/home/bg3.jpg) "></li>
    7         </ul>
    8     </div>

     

    实现轮播的js代码:

     1 (function($){
     2     $.fn.fadeImages=function(options){
     3         var opt= $.extend({
     4            time:5000,//动画间隔时间
     5            fade:3000,//淡入淡出的动画时间
     6            dots:false//是否启用图片按钮
     7         },options);
     8         var t=parseInt(opt.time),
     9             f=parseInt(opt.fade),
    10             d=opt.dots,
    11             i= 0,
    12             j= 0,
    13             k, l, m,set;
    14         m=$(this).find("ul li");
    15         l= m.length;
    16         //初始化
    17         m.hide().eq(0).css("z-index","2").fadeIn(f);
    18         //图片切换函数
    19         function show(i){
    20             m.eq(i).css("z-index",2).fadeIn(f).siblings().css("z-index",1).fadeOut(f);
    21         }
    22         //图片自动播放函数
    23         function play(){
    24             if(i++<l-1){
    25                 set=setTimeout(function(){
    26                     show(i);
    27                     play();
    28                 },t+f)
    29             }else{
    30                 i=-1;
    31                 play();
    32             }
    33         }
    34         play();
    35     }
    36 }(jQuery));

    最后要在页面内调用这个方法:

    1 <script>
    2 $(document).ready(function(){
    3     $(".slide").fadeImage();
    4 })
    5 </script>

    效果如下:

    下面我用setInterval()实现:

    $.fn.fadeImage=function(){
                var opt= {
                    time:1000,//图片切换时间间隔
                    fade:1000
                };
                var t=parseInt(opt.time),
                    f=parseInt(opt.fade),
                    obj=$(this).find("ul li"),
                    i= 0,
                    l=obj.length;
                //初始化图片
                obj.hide().eq(0).css("z-index","2").fadeIn(f);
    //            console.log(l);
                function show(i){
                    obj.eq(i).css("z-index","2").fadeIn(f).siblings().css("z-index","1").fadeOut(f);
                }
                function play(){
                    i++;
                    if(i<l){
                        show(i);
                    }else{
                        i=-1;
                    }
                }
                setInterval(function(){
                    play();
                },t+f);
    
    
            };
            $(document).ready(function(){
                $(".slide").fadeImage();
            })

    SetInterval为自动重复,setTimeout不会重复。也就是说setTimeOut既定的时间间隔后只执行一次。

    2、文字动画的实现

    <div class="nav">
            <div class="nav-list">
                <div class="en"><a href="proeile.html">PROEILE</a></div>
                <div class="ch"><a href="proeile.html">诠释</a></div>
            </div>
            <div class="nav-list">
                <div class="en"><a href="services.html">SERVICES</a></div>
                <div class="ch"><a href="services.html">服务范畴</a></div>
            </div>
            <div class="nav-list">
                <div class="en"><a href="projects.html">PROJECTS</a></div>
                <div class="ch"><a href="projects.html">主要项目</a></div>
            </div>
            <div class="nav-list">
                <div class="en"><a href="cooperation.html">COMPANY</a></div>
                <div class="ch"><a href="cooperation.html">合作机构</a></div>
            </div>
            <div class="nav-list">
                <div class="en"><a href="news.html">NEWS</a></div>
                <div class="ch"><a href="news.html">公司动态</a></div>
            </div>
            <div class="nav-list">
                <div class="en"><a href="join-us.html">JIONS US</a></div>
                <div class="ch"><a href="join-us.html">人才招贤</a></div>
            </div>
            <div class="nav-list">
                <div class="en"><a href="contact.html">CONTACT</a></div>
                <div class="ch"><a href="contact.html">联系</a></div>
            </div>
        </div>

    纯css实现:

     1 .nav{
     2     position: absolute;
     3     /* 600px;*/
     4     text-align: center;
     5     height: 40px;
     6     left: 30%;
     7 }
     8 .nav-list {
     9     width: 100px;
    10     height: 40px;
    11     position: relative;
    12     font-family: "Microsoft YaHei", "微软雅黑", Georgia, Serif;
    13     font-size: 14px;
    14     color: #fff;
    15     overflow: hidden;
    16     float: left;
    17 }
    18 .nav-list div {
    19     width: 100px;
    20     height: 40px;
    21     line-height: 50px;
    22     position: absolute;
    23     text-align: center;
    24     -webkit-transition: all 0.3s ease-in-out;
    25     -moz-transition: all 0.3s ease-in-out;
    26     -o-transition: all 0.3s ease-in-out;
    27     transition: all 0.3s ease-in-out;
    28 }
    29 .nav-list .en {
    30     top: 0;
    31     left: 0;
    32     z-index: 1;
    33     color: #FFF;
    34 }
    35 .nav-list:hover .en {
    36     top: -40px;
    37     left: 0;
    38 }
    39 .nav-list .en a {
    40     color: #FFF;
    41     text-decoration: none;
    42 }
    43 .nav-list .ch {
    44     bottom: -40px;
    45     left: 0;
    46     z-index: 2;
    47     color: #FFF;
    48 }
    49 .nav-list:hover .ch {
    50     bottom: 0;
    51     left: 0;
    52 }
    53 .nav-list .ch a {
    54     color: #FFF;
    55     text-decoration: none;
    56 }
    View Code

    3、文字动画

    文字动画我用到了css3的animation,就拿主页的动画做例子

    <div class="content">
        <ul>
            <li><a href="proeile.html">诠释<span>PROEILE</span></a></li>
            <li><a href="services.html">服务范畴<span>SERVICES</span></a></li>
            <li><a href="projects.html">主要项目<span>PROJECTS</span></a></li>
            <li><a href="cooperation.html">合作机构<span>COOPERATION AGENCIES</span></a></li>
            <li><a href="news.html">公司动态<span>COMPANY NEWS</span></a></li>
            <li><a href="join-us.html">人才招贤<span>PERSONNEL RECRUITMENT</span></a></li>
            <li><a href="contact.html">联系<span>CONTACT</span></a></li>
        </ul>
    </div>

    css:

    .content ul li:nth-child(1){
        -webkit-animation:txt-up 1.5s ease 1s both;
    }
    .content ul li:nth-child(2){
        -webkit-animation:txt-up 1.5s ease 1.5s both;
    }
    .content ul li:nth-child(3){
        -webkit-animation:txt-up 1.5s ease 2.0s both;
    }
    .content ul li:nth-child(4){
        -webkit-animation:txt-up 1.5s ease 2.5s both;
    }
    .content ul li:nth-child(5){
        -webkit-animation:txt-up 1.5s ease 3s both;
    }
    .content ul li:nth-child(6){
        -webkit-animation:txt-up 1.5s ease 3.5s both;
    }
    .content ul li:nth-child(7),
    .right ul li:nth-child(6){
        -webkit-animation:txt-up 1.5s ease 4s both;
        animation:txt-up 1.5s ease 4s both;
        -moz-animation:txt-up 1.5s ease 4s both;
        -ms-animation:txt-up 1.5s ease 4s both;
    }
    
    .right ul li:nth-child(7){
        -webkit-animation:txt-up 1.5s ease 4.5s both;
    }
    @-webkit-keyframes txt-up{
        0%{
            opacity:0;
            -webkit-transform:translateY(500px);
        }
        60%{
            opacity:1;
            -webkit-transform:translateY(-10px);
        }
        80%{
            -webkit-transform:translateY(10px);
        }
        100%{
            -webkit-transform:translateY(0);
        }
    }

    其实我觉得我现在这个实现方法很差劲,因为不利于后台添加新的内容。试着用js代码来实现,效果还不错。

     1     $.fn.txtSlideUp=function(){
     2         var obj=$(this).find("ul li"),
     3             l=obj.length,
     4             count= 0,
     5             i= 0,
     6             newClass="slideUp"+(count++),
     7             time = 1;
     8         $("<style>" +
     9           "."+newClass+"{-webkit-animation:txt-up 1.5s ease "+time+"s both;}" +
    10           "</style>").appendTo("head");
    11         obj.eq(0).addClass(newClass);
    12 
    13         function play(){
    14            i++;
    15            newClass="slideUp"+(count++);
    16            time += 0.5;
    17            $("<style>" +
    18                    "."+newClass+"{-webkit-animation:txt-up 1.5s ease "+time+"s both;}" +
    19                    "</style>").appendTo("head");
    20 
    21            if(i<l){
    22                    obj.eq(i).addClass(newClass);
    23                }else{
    24                    clearInterval(set1);
    25            }
    26         }
    27         var set1=setInterval(function(){
    28             play();
    29         },0);
    30     };
    31     $(document).ready(function(){
    32         $(".content").txtSlideUp();
    33     });
    View Code

    哈哈,好高兴的噢,菜鸟,加油!!!

    还有另一个文字点击效果:

    这个实现起来其实也很简单,只用一句代码就可以搞定了

     1 <div class="menu-list">
     2         <div class="main main_an1">酒店<span>HOTEL</span></div>
     3         <div class="sub_list">
     4             <a href="showPic.html">佛山华美达酒店</a>
     5             <a href="showPic.html">海南龙泉大酒店</a>
     6             <a href="showPic.html">新乡和颐鑫地酒店</a>
     7             <a href="showPic.html">柳州宾馆</a>
     8         </div>
     9         <div class="main main_an2">餐饮<span>RESTAURANT</span></div>
    10         <div class="sub_list">
    11             <a href="showPic.html">广州酒家旧机场店</a>
    12             <a href="showPic.html">广州酒家天极品越华路店</a>
    13             <a href="showPic.html">广州酒家天极品花城店</a>
    14             <a href="showPic.html">潮珍苑酒家</a>
    15             <a href="showPic.html">广州鹅潭一号</a>
    16             <a href="showPic.html">本厨椰子鸡汤</a>
    17             <a href="showPic.html">中惠兰堡餐厅</a>
    18             <a href="showPic.html">中惠兰堡养生馆</a>
    19         </div>
    20         <div class="main main_an3">地产<span>ESTATE</span></div>
    21         <div class="sub_list">
    22             <a href="showPic.html">中惠璧珑湾</a>
    23             <a href="showPic.html">虎门国际公馆</a>
    24             <a href="showPic.html">粤海丽江花园</a>
    25         </div>
    26 </div>
    27 <script>
    28     $(document).ready(function(){
    29         $(".main").click(function()
    30         {
    31             $(this).next("div.sub_list").slideToggle(300).siblings("div.sub_list").slideUp("slow");
    32 
    33         });
    34     });
    35 </script>
    View Code

     next()方法在jquery中是用来遍历节点的,取得每个匹配的元素的后一个同辈的元素集合,只有紧邻的同辈元素才会被匹配到。

     siblings()方法是查找每个匹配元素的所有同胞元素。

    4、设计图展示方法(待更新)

     

     

  • 相关阅读:
    [ios]blocks
    [算法] 堆,栈 【转】
    [ios]关于内存错误调试
    [ios]get,post请求 【转】
    [ios]iOS模拟器应用程序目录结构
    [ios]iPhone地图应用开发以及自定义Annotation [转]
    [算法]插入排序
    [ios]让alertView 自动消失【转】
    [ios]延迟执行方法,取消执行方法
    [算法] 基数排序
  • 原文地址:https://www.cnblogs.com/U-can/p/4378781.html
Copyright © 2011-2022 走看看