博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本_移动类型轮播效果_框架
阅读量:5237 次
发布时间:2019-06-14

本文共 3429 字,大约阅读时间需要 11 分钟。

一、基本元素:

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

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

C:content;内容信息;

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

 

二、思路:

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

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

 

三、html结构:

1 
2  
3
content
4
content
5
content
6  
7

 

四、内容设置:

  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  2  3  4     
5
6 DSCB 7 8 9 10
11
12
content_1
13
content_2
14
content_3
15
16
17
18
19
20
21
22

23 24 43 48
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


转载于:https://www.cnblogs.com/darcrand-blog/p/5740588.html

你可能感兴趣的文章
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>