一次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     /*width: 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 <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、设计图展示方法(待更新)

 

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。