首页 > 代码库 > 第一个页面编写---易迅网首页

第一个页面编写---易迅网首页

  在经常性懒惰偶尔发奋的状态下,想要把各种坑填满简直就是困难重重,一天能抽出来的时间也非常少,同时还要面对各种一脸茫然的小问题。但是,重要的是但是,我还是把人生第一个页面给写出来了。

  为了增加练习coding,同时可以把学习任务里程碑化,经常做点页面能够给自己一点进步的鼓励,所以就选个网站1:1的照做。虽然过程非常坎坷,但是还好把问题都解决掉了,首页版面和一些jq动作基本上能够跟原网站一致。

  以下主要总结一些jq效果的运用方法:

  首先全页面

 技术分享

 

1,页面居中

 技术分享

技术分享

 

 技术分享

 

 

说明:页面在常规的电脑分辨率内均保证主要内容居中。

用法:给每个内容版块套一个box的div

技术分享

 

 

设置css使其居中:

1 .slider_box{2     margin: 0 auto;3     width: 1190px;4 }

 

设置一个media,当页面宽度小于1210时,div宽度改为990px;且将页面主要内容均保持在990px宽度以内。

 

1 @media (max-width:1210px) {2     .slider_box {3       width: 990px;4     }5 }

 

 

 

 

 

 

2,导航栏固定

 技术分享

 

上图为默认样式

 技术分享

 

上图为滚动页面后样式

 

说明:即当滚动条为最顶端(实际上是top150px以内)时,导航栏为默认状态,跟随页面滚动,当滚动条滚动大于150px时,导航栏固定至窗口上端不动。此效果使用非常广泛,经常可以见到。

用法:给导航栏一个fixed的css样式,用jq实现当页面滚动大于150px时才添加fixed样式到导航栏中,小于时去除此样式。注意设置导航栏z-index。

Css:

1 .fixed{2     position: fixed;3     top: 0px;4 }

 

 

 

Jq:

1   $(window).scroll(function(){2        if ($(window).scrollTop()>150) {3            $("#nav_box1").addClass("fixed");4        }5        else{6            $("#nav_box1").removeClass("fixed");7        }8    }));

 

 

3,三角箭头及起旋转

 技术分享技术分享

 

 

说明:用css实现三角箭头,其旋转有动画。

用法:

向下箭头方法:

1   display:inline-block;2     position: relative;3     margin-left:2px;4     margin-top:14px;5     height:0px;6     width: 0px;7     border-width:4px;8     border-color:#bbb transparent transparent ;9     border-style:solid;

 

 

箭头翻转:

1 .menu:hover #jiantou{2     transition-duration: .3s;3     transform-origin: 50% 25%;4     transform: rotate(180deg);5     -webkit-transform:rotate(180deg);6 }

 

a,原理为border-width 只保持上方,其余为透明。

b,需设置display:inline-block; 否则无法翻转,原因暂不知。

c,箭头翻转注意设置翻转圆心 transform-origin

 

 

 

4,图片滚动及其控制

 技术分享

技术分享

技术分享

技术分享

 

 

 

 

说明:易迅网首页在很多地方均用到了图片滚动效果,不仅自动循环运行,也可以用手动箭头进行前后控制,同时附有图片底部滚动状态显示,并且状态显示圆点还可以进行手动切换。为了实现这些效果让我死了很多脑细胞。但是,重要的是但是,我还是把它搞定了。

用法:此处借用了锋利的jquery书本中的例子

Html:

 1 <div class="side_1"> 2     <p class="side_1_title">新品首发</p> 3     <div class="side_1_content">   // 设置显示范围div 4         <div class="s1_list">         // 设置显示内容div 5         <ul class="s1_img"> 6             <li > 7                 <a href=""><img src="../yixun/pics/side1_1.jpg"></a> 8             </li> 9             <li >10                 <a href=""><img src="../yixun/pics/side1_2.jpg"></a>11             </li>12             <li >13                 <a href=""><img src="../yixun/pics/side1_3.jpg"></a>14             </li>15         </ul>16         </div>17                 18         <div class="side_control">  // 前后控制箭头19             <i id="s1_prev" class="prev"></i>20             <i id="s1_next" class="next"></i>21         </div>22         <div id="s1_step" class="s1_side side_steps">  // 滚动状态圆点23             <ol>24                 <li class="step current"></li>25                 <li class="step"></li>26                 <li class="step"></li>27             </ol>28         </div>29 </div>30 </div>

 

 

        

Css:

 1 .side_1{ 2     position: relative; 3     float: left; 4     width: 200px; 5     height: 250px; 6     top: 0px; 7     overflow: hidden; 8 } 9 .side_1_title{10     position: absolute;11     top: 6px;12     left: 10px;13     color: #1d75d9;14     font-size:16px;15     z-index: 10;16 }17 .s1_img{18     float: left;19 }20 .s1_img li{21     float: left;22     display: inline;23     width:200px;24 }25 .s1_list{        //设置内容排成一排,left为0,position为absolute,并给出全部li标签的总宽度26     width: 600px;27     position: absolute;28     left: 0;29     top: 0;30 }31 .side_control{32     display: none;      //这里把控制箭头做了隐藏33 }34 35 .side_1:hover .side_control{    //鼠标接触后箭头显示36     display: block;37 }38 .side_control .prev{               //箭头设置    39     width: 13px;40     height: 18px;41     background: url(../pics/v2icons.png) -108px -340px no-repeat;42     left: 10px;43     top: 125px;44     position: absolute;45     46 }47 48 49 .side_control .next{              //箭头设置50     background: url(../pics/v2icons.png) -94px -340px no-repeat;51     right: 10px;52     position: absolute;53     top: 125px;54     width: 13px;55     height: 18px;56 }57 58 .side_steps{                 //状态圆点设置59     position: absolute;60     bottom: 10px;61     width: 200px;62     height: 20px;63     left: 0px;64     overflow: hidden;65     text-align: center;66 }67 .side_steps li{68     display: inline-block;69     width: 2px;70     height: 2px;71     margin: 0 1px;72     text-align: left;73     text-indent: -80px;74     border-radius: 50%;75     cursor: pointer;76     77     opacity: .4;78     overflow: hidden;79 80 }81 #s1_step .step {       //状态圆点默认设置82     background-color: #000;83     border: 2px solid #000;84 }85 86 #s1_step .current {        //状态圆点显示设置87     background-color: #b7b7b7;88     border: 2px solid #b7b7b7;89 }

 

 

Jq:

 1 $(function(){ 2     var page = 1; 3     var p = 1;  4  5     $("#s1_next").click(function(){ 6           autoplay(); 7           }) 8     9      $("#s1_prev").click(function(){10           fucprev();11      });12 13      14        var $parent = $("#s1_next").parents("div.side_1");//根据当前点击元素获取到父元素15        var $v_show = $parent.find("div.s1_list"); //寻找到“视频内容展示区域”16        var $v_content = $parent.find("div.side_1_content"); //寻找到“视频内容展示区域”外围的DIV元素17        var v_width = $v_content.width() ;18        var len = $v_show.find("li").length;19        var $v_step = $v_content.find("div.s1_side");20 21        function autoplay() {  22        if( !$v_show.is(":animated") ){    //判断“视频内容展示区域”是否正在处于动画23            if( page >= len ){  //已经到最后一个版面了,如果再向后,必须跳转到第一个版面。24             $v_show.animate({ left : ‘0px‘}, "slow"); //通过改变left值,跳转到第一个版面25             page = 1;26            }else{27             $v_show.animate({ left : ‘-=‘+v_width }, "slow");  //通过改变left值,达到每次换一个版面28             page++;29           }30          $v_step.find("li").eq((page-1)).addClass("current").siblings().removeClass("current");//通过添加current来显示状态改变      31  }32      };33     var t = setInterval(autoplay,3000);34 35     var $v_li =  $v_step.find("li")36 37 38     $v_li.click(function(){   // 点击状态显示圆点来改变图片39       if( !$v_show.is(":animated") ){40       p = $(this).index();41       page = p+1;42           $v_show.animate({ left : -(page-1)*v_width });43        $v_step.find("li").eq((page-1)).addClass("current").siblings().removeClass("current");44     }}45     );46 47 48      function fucprev() {  49        if( !$v_show.is(":animated") ){    //判断“视频内容展示区域”是否正在处于动画50            if( page == 1 ){  //已经到第一个版面了,如果再向前,必须跳转到最后一个版面。51             $v_show.animate({ left : ‘-400px‘}, "slow"); //通过改变left值,跳转到最后一个版面52             page = 3;53            }else{54             $v_show.animate({ left : ‘+=‘+v_width }, "slow");  //通过改变left值,达到每次换一个版面55             page--;56           }57          $v_step.find("li").eq((page-1)).addClass("current").siblings().removeClass("current");58        }59      };60 });

 

 

        

5,下拉元素打开

 技术分享

技术分享

 

 

说明:通过鼠标移动到元素后,自动打开相关元素,并改变自身设置。

用法:类似于打开二级菜单,将默认隐藏的div显示,并且给原元素添加一个css样式来改变自身效果。这里我用到jq来添加和移除样式。不作详细说明了。

 

 

 

以上为该页面的主要难点,对于第一次写页面还有很多不明白的地方。

 

1,还不会切图,所以会经常翻看原页面的源码来找图片以及设置尺寸大小。

2,希望这样做几个页面后可以学会切图,并独立完成页面。

3,看书和动手差别还是非常大

4,本来有一个跟我基础差不多的小伙伴也去上培训班了

5,代码现在还很不规范

 

第一个页面编写---易迅网首页