JavaScript--水平幻灯片

// 列表布局,图片左浮动,外侧容器设置overflow:hidden;

// 组合使用构造函数模式(对象不共享的数据)和原型模式(对象共享的数据)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="utf-8">
 5     <style type="text/css" media="screen">
 6         * { margin:0; padding:0; font-size: 14px;}
 7         .slider { width:550px; height:200px; margin:50px auto 0; overflow: hidden;}
 8         .slider ul { width:10000px; list-style:none; }
 9         .slider li { float: left; }
10         .slider li img { width:550px; text-align: center;}
11         #slider-nav { width:550px;  margin:30px auto; text-align: center;}
12         #slider-nav button { height:34px; line-height: 34px; width:75px; text-align: center; cursor:pointer; margin:0 20px;}
13     </style>
14 </head>
15 <body>
16     <div class="slider">
17         <ul>
18             <li><img src="http://www.gbtags.com/gb/networks/uploads/afb73f09-8334-46b2-ad66-4abeb7c67a0a/images/gbtags1.jpg" alt="image"></li>
19             <li><img src="http://www.gbtags.com/gb/networks/uploads/afb73f09-8334-46b2-ad66-4abeb7c67a0a/images/gbtags2.jpg" alt="image"></li>
20             <li><img src="http://www.gbtags.com/gb/networks/uploads/afb73f09-8334-46b2-ad66-4abeb7c67a0a/images/gbtags3.jpg" alt="image"></li>
21             <li><img src="http://www.gbtags.com/gb/networks/uploads/afb73f09-8334-46b2-ad66-4abeb7c67a0a/images/gbtags4.jpg" alt="image"></li>
22         </ul>
23     </div>
24
25     <div id="slider-nav">
26         <button data-direction="prev">&laquo;&nbsp;上一个</button><button data-direction="next">下一个&nbsp;&raquo;</button>
27     </div>
28 </body>
29     <script src="http://cdn.gbtags.com/jquery/2.1.1/jquery.min.js"></script>
30     <script>
31
32     function Slider(container,nav){                             // 构造Slider()函数;
33         this.container = container;                             // 定义一系列局部变量;
34         this.nav = nav;
35         this.imgs = this.container.find(‘img‘);
36         this.imgWidth = this.imgs[0].width;
37         this.imgsLen = this.imgs.length;
38         this.current = 0;
39     };
40
41     Slider.prototype.transition = function(){                   // 使用prototype来定义transition()方法;
42         this.container.animate({                                // 编写外包围容器(ul)的运动方向及运动长度;
43             ‘margin-left‘:-(this.current*this.imgWidth)
44         });
45     };
46
47     Slider.prototype.setCurrent = function(dir){                // 使用prototype来定义setCurrent()方法;
48         var pos = this.current;
49         pos += (~~(dir === ‘next‘) || -1);                      // 使用"~~"进行类型转换,转换成数字类型; ~~true == 1; ~~false == 0;
50         this.current = (pos < 0) ? this.imgsLen - 1 : pos % this.imgsLen;
51         return pos;
52     };
53
54     $(function(){
55         var container = $(‘.slider‘).children(‘ul‘),            // 定义container变量的值;
56             slider = new Slider(container, $(‘#slider-nav‘));   // 实例化Slider()函数并传参;
57
58         slider.nav.find(‘button‘).on(‘click‘,function(){        // 找到触发按钮并绑定事件;
59             slider.setCurrent($(this).data(‘direction‘));       // 调用setCurrent()函数并传入按钮的data-direction的值;
60             slider.transition();                                // 调用transition()方法,使幻灯片运动;
61         })
62     });
63
64     </script>
65 </html>
时间: 2024-08-10 08:03:17

JavaScript--水平幻灯片的相关文章

挑战jquery(一)实现水平幻灯片

今天上博客看到了这个挑战题目,说来惭愧,半天才把页面做出来,js部分就是一头雾水了 网址:http://www.gbtags.com/gb/gbliblist/99.htm 如有侵权请联系我 有兴趣的可以自己去试试, 页面是这样的: 点击上一个或者下一个会水平滑动到下一张图片从而实现幻灯片效果 下面把代码贴出来: html部分: <!-- 幻灯相关HTML //--> <div class="slider"> <ul> <li><i

javascript水平提升

学习javascript分几个阶段,没入门,入门初学者,中级水平,高级水平,ppt水平. 1,没入门的如何学习? 我当初是先学jquery,有css和html基础,有css基础看jq的语法很简单,就是选择符,jq的api懂高中英语就够了,猜也猜的出来意思,然后下载基本jq的chm手册,对着挨个看一遍.(这个挨个看一遍的意思就是一行一句的逐个看一遍,看不懂的别死扣,先看完再说). 看完一遍之后,心中有数,哦,原来有个ajax函数可以访问网络资源,有个success可以写回调方法,超时怎么办?几个一

JavaScript 原生态幻灯片切换

<!doctype html> <html> <head> <title> 幻灯片效果联系 </title> <style type="text/css"> body{background-color: #373737;} body, ul, li, a, img{margin: 0px; padding: 0px;} .box{width: 600px; height: 400px; background-col

如何衡量一个人的 JavaScript 水平

基础1,什么是命名空间,变量污染,变量声明提升,预编译?如何检查一段代码执行后是否声明了全局变量?2,隐式转换的种种规则3,关于对象,对象的属性可能有哪些特性(attribute)?什么是原型链?如何检测某一属性是在对象中还是原型链中?如何检测是否是普通对象或空对象?写一个工厂模式?(工厂模式也有很多细节,具体可以参考<javascript模式>一书,不是<javascript设计模式>)4,变量类型检测.特性检测以及异常避免5,setTimeout的特性6,数组几个API的手工实

优秀的JavaScript模块是怎样炼成的

引言:如今的JavaScript已经是Web上最流行的语言,没有之一.从Github上的语言排行榜https://github.com/languages上即可看出,也是如今最为活跃的开源社区.随着Node的加入,JavaScript开枝散叶进入服务器领域,为这个语言榜的占比,也贡献了几分热度.尽管经历了Web2.0的洗礼 ,但在国内谈及开源,开源人士似乎都当这门语言并不存在,这也意味着国内的开发中坚阶层,并没有改变JavaScript以及前端过去二流形象的认识,也没意识到JavaScript如

弹出层水平垂直居中(支持浏览器窗口大小改变,存在垂直滚动条)

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>弹出层水平垂直居中</title> <script src="jquery-1.7.2.js" type="text/javascript"></script> <script langu

javascript视频教程之第一季《ECMA5核心+设计模式》

javascript!是一门非常强大的脚本语言,应用的范围非常广泛,每一个web开发者学好javascript也是必须的,本套视频教程详细的讲解了javascript各个知识点.关键点,其中涉及到高深的函数概念.原型概念.接口概念.单体概念.更是详细的讲解了javascript设计模式. 本视频教程相当于基本javascript的书籍的结晶<javascript高级程序设计><javascript权威指南><javascript征途><javascript王者归来

JavaScript入门学习书籍的阶段选择

对于许多想学习 JavaScript 的朋友来说,无疑如何选择入门的书籍是他们最头疼的问题,或许也是他们一直畏惧,甚至放弃学习 JavaScript 的理由.在 JavaScript 方面,自己不是什么专家,也不是什么高手,但自己一路走来,JavaScript 从迷茫到认识,对于JavaScript 书籍的认识或许还有些借鉴价值.入门推荐首选书籍:<JavaScript DOM 编程艺术>当初读了不下 4 遍,书内容简单,易学,上手快,编程思想严谨.好的入门书,对你未来的编程都会有着深远的影响

javascript必知必会之prototype

本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 . 点击 RSS 进行订阅.(推荐使用 google reader, 如果你的浏览器不支持直接订阅, 请直接在 google reader 中手动添加). 摘要 本系列博文主要谈一些在 javascript 使用中经常会混淆的高级应用,包括: prototype, closure, scope, this关键字. 对于一个需要提高自己javascript水平的程

javascript 学习小结 JS装逼技巧(一) by FungLeo

javascript 学习小结 JS装逼技巧(一) by FungLeo 前言 最近一直在做javascript方面的工作.但是本身我的javascript水平比较低,因此在学习过程中比较困难.而最近又接触到了很多的知识点.好记性不如烂笔头,因此写这篇零碎的博文,记一记我学到的一些好玩的东西. 简单的新建各种元素 创建各种元素都有相对应的方法,例如,创建一个数组可以这样写var arr = new Array 当然,这样做是对的,但是我英文很烂,并且不喜欢这样的代码.我喜欢的是下面这样的. //