码迷,mamicode.com
首页 > 移动开发 > 详细

基本_移动类型轮播效果_框架

时间:2016-08-05 23:04:57      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:

一、基本元素:

D:display window;用户浏览的窗口;

S:scroll window;存放内容的大容器;通过移动来改变显示的内容;

C:content;内容信息;

B:button;按钮,多种样式,可选;

 

二、思路:

通过移动S 的位置,由于C位于S中,所有的C将会同时跟随S而移动。

在D中显示的内容将会被改变。

技术分享

 

三、html结构:

1 <div class=”D”>
2  <div class=”S”>
3         <div class=”C”>content</div>
4         <div class=”C”>content</div>
5         <div class=”C”>content</div>
6  </div>
7 </div>

 

四、内容设置:

  1、主要部分:

 1 1.样式:
 2      D:
 3          overflow: hidden;
 4          使超出D大小即溢出内容隐藏起来。
 5      S:
 6          position: relative;
 7          left: 0px;
 8          因为S需要进行移动,因此添加一个相对定位属性,并初始偏移值。
 9      C:
10          float: left;
11          这个属性使C可以横向排列,这是针对块元素的设置。
12 2.js:
13      var scr = document.getElementsByClassName(‘S‘)[0];
14      scr.style.left = (-1) * 500 * j + ‘px‘;
15      获取到S这个元素,并重设它的偏移值。

 

  2、次要部分:

 1 1.样式:
 2     DSC宽高比:
 3     D_width=C_width,S_width=C_width*C_count;
 4     D_height=S_height=C_height;
 5   
 6 2.js:
 7     偏移值:left,C的id:C_id,每个C的宽度:C_width;
 8     left=-(C_id*C_width);
 9 3.动画过渡:
10   transition:改变的属性 过渡使用时间 运动模式 延迟时间;
11   此属性可以扩展,本例中该属性只影响视觉效果,不影响框架;

 

  /* 元素的left属性为元素水平偏移,正值向右,负值向左。当C进行切换的时候,这个C需要被显示到D的正中央,那么在它左边的其他的C(或者没有)就需要向左移动。移动的总距离就等于C的个数*C的宽度。*/

 

以上是 DSCB 框架的基本属性设置。接下来将介绍运动实现(js)

 

运动实现:

本例中使用的是:非自动轮播,按钮触发切换。

本例使用的demo。

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <link type="text/css" rel="stylesheet" href="style.css"/>
 6     <title>DSCB</title>
 7 
 8 </head>
 9 <body>
10 <div class="D">
11     <div class="S">
12         <div class="C" style="background-color: #ff7ea7;">content_1</div>
13         <div class="C" style="background-color: #0cbaff;">content_2</div>
14         <div class="C" style="background-color: #25ec81;">content_3</div>
15     </div>
16     <div class="B">
17         <div class="B_number B_number_checked"></div>
18         <div class="B_number"></div>
19         <div class="B_number"></div>
20     </div>
21 </div>
22 <hr/>
23 </body>
24 <script type="text/javascript">
25     function Box_change() {
26         var btn = document.getElementsByClassName(B_number);
27         var scr = document.getElementsByClassName(S)[0];
28         // 绑定按钮点击事件;
29         for (var i = 0; i < btn.length; i++) {
30             btn[i].onclick = function btn_onclick() {
31                 for (var j = 0; j < btn.length; j++) {
32                     if (btn[j] === this) {
33                         scr.style.left = (-1) * 500 * j + px;
34                         btn[j].className = B_number B_number_checked;
35                     } else {
36                         btn[j].className = B_number;
37                     }
38                 }
39             }
40         }
41     }
42 </script>
43 <script type="text/javascript">
44     window.onload = function main() {
45         Box_change();
46     }
47 </script>
48 </html>
HTML 结构文档
技术分享
 1 .D {
 2     width: 500px;
 3     height: 340px;
 4     margin: 0px auto;
 5     border: 1px solid #000000;
 6     overflow: hidden;
 7 }
 8 
 9 .S {
10     position: relative;
11     left: 0px;
12     width: 1600px;
13     height: 300px;
14     transition: all 0.5s ease-in-out 0.0s;
15     -moz-transition: all 0.5s ease-in-out 0.0s;
16     -ms-transition: all 0.5s ease-in-out 0.0s;
17     -o-transition: all 0.5s ease-in-out 0.0s;
18     -webkit-transition: all 0.5s ease-in-out 0.0s;
19 }
20 
21 .C {
22     float: left;
23     width: 460px;
24     height: 280px;
25     margin: 10px 20px;
26     text-align: center;
27     font-size: 32px;
28     line-height: 300px;
29 }
30 
31 .B {
32     width: 180px;
33     height: 30px;
34     margin: 0px auto;
35     text-align: center;
36 }
37 
38 .B_number {
39     float: left;
40     width: 20px;
41     height: 20px;
42     margin: 5px 20px;
43     background-color: #000000;
44     opacity: 0.1;
45     cursor: pointer;
46 }
47 
48 .B_number:hover, .B_number_checked {
49     opacity: 0.8;
50 }
51 
52 p {
53     font-size: 30px;;
54     text-indent: 5em;
55 }
CSS 样式表

 

1.获取元素

1 //获取所有按钮;
2 var btn = document.getElementsByClassName(‘B_number‘);
3 //获取Scroll window;
4 var scr = document.getElementsByClassName(‘S‘)[0];

*因为S使用了类作标记,所有要获取类组中的第一个元素:scr[0];也可以使用id作标记;

 

2.给所有的按钮绑定点击事件:

1 for (var i = 0; i < btn.length; i++) {
2     btn[i].onclick = function btn_onclick() {
3     }
4 }    

 

3.设置水平偏移值(内容切换):

1 for (var j = 0; j < btn.length; j++) {
2     if (btn[j] === this) {
3         scr.style.left = (-1) * 500 * j + ‘px‘;
4         btn[j].className = ‘B_number B_number_checked‘;
5     } else {
6         btn[j].className = ‘B_number‘;
7     }
8 }

 

/* 语义分析:当按钮被点击时,判断被点击的这个按钮(this)是按钮条中的第几个(id)按钮,按钮的序号与C(内容)的序号是一一对应的。获取到按钮的序号即知道要显示的C的序号。

修改偏移值:该偏移值根据要显示的C的序号来计算,即:left=-(C_id*C_width); */


The end.

by Little


基本_移动类型轮播效果_框架

标签:

原文地址:http://www.cnblogs.com/darcrand-blog/p/5740588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!