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 相关文章推荐
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
基于jQuery实现下拉框
Nov 24 Javascript
详解JavaScript数组和字符串中去除重复值的方法
Mar 07 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
Vue框架下引入ActiveX控件的问题解决
Mar 25 Javascript
elementUI select组件使用及注意事项详解
May 29 Javascript
layUI实现三级导航菜单效果
Jul 26 Javascript
微信小程序 如何获取网络状态
Jul 26 Javascript
swiper自定义分页器的样式
Sep 14 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
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
JS面向对象编程 for Cookie
2010/09/19 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
MySQL最常见的操作语句小结
2015/05/07 Python
python基础知识小结之集合
2015/11/25 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
python程序 创建多线程过程详解
2019/09/23 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
乡镇网格化管理实施方案
2014/03/23 职场文书
初一新生军训方案
2014/05/22 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技
Python可视化神器pyecharts绘制水球图
2022/07/07 Python