---恢复内容开始---

这两天在顶顶大人的指导下,利用jquery框架做了一个动态切换的小页面。最终效果图:

这么萌萌哒的图片让我觉得一直在测试也没那么累。实现功能如下:

1.打开页面时,自动切换,切换顺序为123212...这样

2.当用户鼠标放在三个按钮中的某一个时,会停留,不再切换;当鼠标移开后,继续执行自动切换。

码代码的过程:

关键是设置一个父元素,使其高度小于子元素。这样才会出现滚动条啦。要记住把父元素的overflow属性设置为hidden哦,不然又滚动条什么的影响美观。我之前就是设置为auto,顶顶大人指导+1。在子元素中的图片都设置float:left,当然别忘了清除浮动。

这些设置完就要设置左侧按钮了,如何让那三个按钮垂直居中,头疼了半天。最后还是百度了下,给父元素设置display属性,属性值为table;对子元素设置:

display:table-cell;
vertical-align:middle;

然后是把方方丑丑的按钮变为圆圆的,设置border-radius;我把值取它width的一半,就圆了。

简单的静态页面写完了,然后开始写js文件。说到这个,上一次让小顶大人查错,他非常认真地查了大半天,就是查不出错。然后原来我把script标签里的type属性写成type=“javascript/text” 小顶兄怒了...然后我记住了,以后不确定就不要写了。顶大人指导+2

为了实现它每隔一定时间自动切换,用到了window的方法,window.setInterval(参数1,参数2),好吧这里又有个小错误,又把window写成windows,又是查错半天无果的节奏。

顶大人指导+3。先是在ready事件设置了一个数组 array[0,1,2,1]切换循环执行的顺序,设置了一个变量j=0。然后设置了一个interval函数令i=++j/4;(先加j是因为最开始是设置了第一个按钮是红的,所以执行开始是从第二个按钮开始的。即触发第二个btn。)顶顶大人让我去问问看后台的那个大神,也许他有更优雅的写法,他常说后台大神写的代码超优雅~最后调用了参数为i的scroll方法。scroll方法中1.首先是一个链式写法,被改写了。我写得太繁琐了。

$(".totbtn input").eq(array[i]).addClass('red').siblings().removeClass("red");

这几天看了些jquery的方法, 还是可以看懂这个链式结构的。这个链式结构实现的功能是将索引等于array[i]的按钮添加red类,而他的同辈元素将red类移除。

2.stop(1,1) 当不加上这行代码时,就出现了这样一个bug,鼠标放在按钮上时,不会停止动画。

3.用到了srollTop()函数设置动画效果。它的参数为array[i]*200 (图片高度是200)当i=0,array[i]也为0,此时显示前三分之一内容,即第一个按钮触发时显示的内容。当i=3时,array[i]=1,此时高度为200显示第二部分内容。原先直接设置i*200,所以当i=3时,就会出现错误。

在reay事件下直接设置int= window.setInterval(interval,1000);

对三个按钮设置mouseover()分别调用scroll函数,并将其中参数分别设置为0,1,2。并设置clearInterval()实现当鼠标停留时,自动切换停止,并停留在当前内容。

在另外对这个三个按钮分别设置mouseout()函数。重置j值为当前class为red的索引值。然后重置int=window.setInterval(interval,1000);调用interval函数,写入新获得的j值。(j值不再从0开始)

基本的jquery就在这里了。第一次发博,感觉写得不清不楚的,再接再厉吧。

---恢复内容结束---

初用jquery的更多相关文章

  1. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  2. jQuery整体架构源码解析(转载)

    jQuery整体架构源码解析 最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性, ...

  3. [译] EXTENDING JQUERY – 2.2 A simple plugin

    2.2 一个简单的插件示例 jQuery 插件能做任何事情,这个已经由浩如烟海的各类第三方插件如证明.小到只影响一个元素,大到改变多个元素的外观和行为,jQuery 的各种功能等你来扩展. 2.2.1 ...

  4. jQuery整体架构源码解析

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  5. 【深入浅出jQuery】源码浅析--整体架构(转)

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  6. jquery源码解读

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐进增强)优雅的处理能 ...

  7. jQuery 整体架构

    不同于 jQuery 代码各个模块细节实现的晦涩难懂,jQuery 整体框架的结构十分清晰,按代码行文大致分为如上图所示的模块. 初看 jQuery 源码可能很容易一头雾水,因为 9000 行的代码感 ...

  8. Java程序员从笨鸟到菜鸟全部博客目录

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主 ...

  9. 《Java程序员由笨鸟到菜鸟》

    <Java程序员由笨鸟到菜鸟> 在众多朋友的支持和鼓励下,<Java程序员由菜鸟到笨鸟>电子版终于和大家见面了.本电子书涵盖了从java基础到javaweb开放框架的大部分内容 ...

随机推荐

  1. JavaScript- The Good Parts Chapter 3 Objects

    Upon a homely object Love can wink.—William Shakespeare, The Two Gentlemen of Verona The simple type ...

  2. 多组radio传值注意事项

    多组radio传值,每组的radio name必须不同,否则所有的radio将被视为一组,传值时只会传其中一组的值到后台,如果这时你用数组接收从前台传过来的值并使用,就会报数组越界异常

  3. 升级web项目步骤

    1.备份数据库(数据库服务器cmd执行,exp pra/pra@ORCL file=c:\name.dmp)2.删除原有表,导入新的备份文件(数据库服务器cmd执行,imp pra/pra@ORCL ...

  4. 《Effect Java》学习笔记1———创建和销毁对象

    第二章 创建和销毁对象 1.考虑用静态工厂方法代替构造器 四大优势: i. 有名称 ii. 不必在每次调用它们的时候都创建一个新的对象:   iii. 可以返回原返回类型的任何子类型的对象: JDBC ...

  5. IOS GCD 使用 (二)

     上一节,主要介绍了GCD的基本的概念,这节将用代码深入详细介绍GCD的使用. 一  使用介绍    GCD的使用主要分为三步:创建代码块;选择或创建合适的分发队列;(同步.异步方式)向分发队列提交任 ...

  6. OpenCV -- 获取轮廓照片

    import cv2 img = cv2.imread( 'E:\A.jpeg' ) cv2.imshow( 'img', img ) gray = cv2.cvtColor( img, cv2.CO ...

  7. GROUP BY,WHERE,HAVING之间的差别和使用方法

    having子句与where有类似之处但也有差别,都是设定条件的语句.在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先运行.而where子句在查询过程中运行优 ...

  8. iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)

    新建一个Category,命名为UIColor+Hex,表示UIColor支持十六进制Hex颜色设置. UIColor+Hex.h文件, #import <UIKit/UIKit.h> # ...

  9. linux上安装memcached

    我的版本为Centos Release 5.3 (Final)使用这个命令可以知道你的Linux版本1.cat /etc/redhat-release首先要安装libevent库.cd /usr/lo ...

  10. WebService 实现BS环境与BS环境传递参数,根据参数生成txt文档

    客户端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Client.as ...