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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
web css实现整站样式互相切换
Oct 29 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
Sep 09 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 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递归函数返回值使用方法
2013/02/18 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP类的封装与继承详解
2015/09/29 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
JavaScript 语言的递归编程
2010/05/18 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
新闻专业推荐信范文
2013/11/20 职场文书
简短大学毕业感言
2014/01/18 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
北京奥运会主题口号
2014/06/13 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
python非标准时间的转换
2021/07/25 Python
Go语言 详解net的tcp服务
2022/04/14 Golang
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python