javascript 另一种图片滚动切换效果思路


Posted in Javascript onApril 20, 2012

先说一种最普遍的思路:

把图片们用ul之类的包起来,并设置float。然后设置这个ul本身为absolute定位,其父标签用relative定位。通过设置ul的left或top值,实现图片队列的滚动效果

特点:

只操作一个html元素(即上文的ul),对系统开销小;滚到头会回滚;从大序号滚动到小序号也会回滚;从最后序号滚动到第一个,会“咻”的一下把所有中间的图片也路过一次。

另一种思路就是我在XScroll.js里实现的思路,所有图片用绝对定位。具体看那篇文章吧。

XScroll.js完成后,我始终觉得他的系统消耗是个问题,因为他实现一个图片切换基本上都是同时操作两张图片。所以我想写一个精简版的,但又不想要我文首说那种最普通的。

后来我无意在土豆女性频道发现了另一种图片滚动切换的实现思路。

他的特点是:

无论从哪个序号跳到哪个序号,都只滚动一个步长。比如从1到2,或从1跳到到3,都只滚动一个步长。即使中间有其他图片,也不会出现;当然,滚到头也会回滚,但回滚也是只有一个步长。

这个效果看起来很奇妙,我研究了一下他的html,发现实现方式比我的XScroll.js要简便的多。

<ul id="idSlider2"> 
<li style=""><a href="http://office.3water.com/"><img src="../s1.jpg"/></a></li> 
<li><a href="http://3water.com/"><img src="../s2.jpg"/></a></li> 
<li><a href="http://baidu.com/"><img src="../s3.jpg"/></a></li> 
<li><a href="http://sc.3water.com/"><img src="../s4.jpg"/></a></li> 
</ul>

html结构,很普通;前面的定位跟最普遍的那个思路一样,都是所有图片均设置float:left。但JS里面有蹊跷:只设置当前图片为显示,其余图片隐藏,当要滚动时,显示出下一张图片,并判断下一张图片是在当前图片前面还是后面:在后面就往左滚,在前面就回滚。

由于所有图片都设置了float,所以当任意两张图片显示出来的时候,他们会因为float的原因紧紧靠在一起,这样,就不用额外担心图片的定位问题了。

而且,这样一来,也只用操作图片容器(即那个ul),而不用操作单张图片,节省系统资源。

我觉得这种思路很妙,简单大气又节约,所以我写了一个XScroll2.js,来记录这个效果,感觉还很不错哈。

有兴趣的朋友可以看XScroll2.js的示例页,仿的是拍拍网首页的图片切换——因为他的效果也是上面说的这种。不过不知道能坚持看到文末的同学有多少呢。。。

Javascript 相关文章推荐
JS通过分析userAgent属性来判断浏览器的类型及版本
Mar 28 Javascript
js如何判断用户是否是用微信浏览器
Jun 05 Javascript
Firefox中使用outerHTML的2种解决方法
Jun 07 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
原生JavaScript实现滚动条效果
Mar 24 Javascript
灵活的理解JavaScript中的this指向
Feb 25 Javascript
温习Javascript基础语法之词法结构
May 31 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
JS实现数组删除指定元素功能示例
Jun 05 Javascript
Vue axios 将传递的json数据转为form data的例子
Oct 29 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
May 19 Javascript
react合成事件与原生事件的相关理解
May 13 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
Apr 20 #Javascript
浏览器解析js生成的html出现样式问题的解决方法
Apr 16 #Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 #Javascript
JavaScript打开word文档的实现代码(c#)
Apr 16 #Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
Apr 16 #Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 #Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 #Javascript
You might like
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
浅析Python基础-流程控制
2016/03/18 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
解决pip install psycopg2出错问题
2020/07/09 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
八一慰问活动方案
2014/02/07 职场文书
小学英语课后反思
2014/04/26 职场文书
环境卫生倡议书
2014/08/29 职场文书
行政诉讼答辩状
2015/05/21 职场文书
决心书格式及范文
2019/06/24 职场文书
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技