- 浏览: 330996 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (59)
- wicket (1)
- java (24)
- js (27)
- xml (3)
- Android (1)
- 服务器 (7)
- 数据库 (7)
- spring (1)
- hibernate (1)
- ssh (6)
- web (25)
- oracle (1)
- 函数 (2)
- mysql (1)
- 手机 (6)
- javascript (21)
- session (3)
- cookie (4)
- struts (1)
- ngnix (1)
- 软件使用 (2)
- linux (1)
- vi (1)
- 前端 (6)
- javascrip (2)
- html (3)
- js css (2)
- 正则 (1)
- ajax (1)
- toast (1)
- 消息提示 (1)
- 确认弹窗 (1)
- springmvc (1)
- 倒计时 (1)
最新评论
-
wenm168:
美观的图片上传前预览效果:http://www.anyrt.c ...
JavaScript 图片的上传前预览(兼容所有浏览器) -
口弦1992:
我的ie9并没有图片预览出来啊。
JavaScript 图片的上传前预览(兼容所有浏览器) -
axie1234567:
分享的东西很有用。
java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能) -
wyl4728:
32个赞
mysql函数大全 -
yu_long:
seeker.getCountry(ip);
解析出来的 ...
根据IP地址获取所在地
最近一直在搞一些有关元素动态展示的功能,这么做是为了增加用户的体验,使得客户端更加的具有和用户之间的交互作用;
下面是我这篇文章的大纲:
1,介绍两种插件,实现元素轮番展示和拖动元素滑动的效果;
2,插件参数的介绍;
3,扩展功能的提出和实现;
4,一些悬而未解的问题,写在最后希望高手指点迷津,经验交流,小生不胜感激!
进入正题:
(1)为大家介绍两款插件,使用起来比较简单,要是需要更高级的效果,还可以自己实现;一个是jquery插件:jcarousellite,一个是iscroll插件;官方地址分别是:
http://www.gmarwaha.com/jquery/jcarousellite/index.php和http://cubiq.org/iscroll-4
下面就写点自己使用过程中的一些感悟,一般网页上实现元素的滑动或者滚动都是使用ul元素进行封装,为什么要这么做?我在一个美女空间里发现了她写的一篇日志,解释的挺不错,在这里我就偷一下懒,引用她的观点了:
重组div的结构。
重组的主要目的是,在原div的里面添加一个div(player),在player里面添加另一个div(box)。这里两个div我觉得是非常有有必要的,后面要设置player的css,并且实际上滚动字幕的容器是player,位置变化,真正滚动的部分是box。当然,palyer的任务可以交给外面的div来完成,box的工作和任务可以交给里面的ul来完成,这样对设计师来说,原来的div还是div,只是用来布局的,没有任何影响。而里面的ul,有的设计师喜欢定义整个页面所有的ul的css,我怕会对我的字幕里的ul产生什么现在还不能预料的影响,所以在ul的外面嵌套一个div。(引用地址:http://apps.hi.baidu.com/share/detail/852064)
iscroll中的滑动原理也是一样的,模式也是div+div+ul+li 简单点说:最外面的一层div可以看成是一个显示器,显示器下的第一个子元素就可以当做一个滚动元素的box,可以看成是一个滚动条,显示的元素多少,是有显示器的宽度来决定的,滚动的长短是由box的宽度来决定的;
jcarousellite 实现滚动,官方文档中介绍的很详细,这里我就不做过多的说明;
(2)
jcarousellite参数
- $.fn.jCarouselLite = function(o) {
- o = $.extend({
- btnPrev: null, //上一张按钮
- btnNext: null, //下一张按钮
- btnGo: null, //跳转到第几张
- mouseWheel: false, //是否支持鼠标滚轮,需要jquery.mousewheel.js
- auto: null, //是否自动滚动
- speed: 200, //滚动时长
- easing: null, //滚动优化,需要jquery.easing.1.1.js
- vertical: false, //滚动方向,true垂直,false水平
- circular: true, //是否重复播放,首位相接
- visible: 3, //显示图片数量
- start: 0, //从第几个开始滚动显示
- scroll: 1, //每次滚动数量
- beforeStart: null, //滚动前调用函数
- afterEnd: null //滚动后调用函数
- }, o || {});
iscroll 参数
这个就NB 了,里面的参数挺多的,下面就说一下比较特殊的几个,其他的基本参数就可以自己在iscroll中的API中查找,地址:http://cubiq.org/iscroll,若你感觉读官方文档比较吃力的话,这里有一篇翻译过来的,个人感觉不错:http://hi.baidu.com/ali_myself/blog/item/7cbe2aa296b1459046106419.html
iscroll4官方文档给出了5个例子,都挺经典的,有兴趣的可以仔细的研读一下;特别是pullUp/Down Refresh 这个在手机应用中经常能看到;
this.x /this.y:判断元素scroll left/right滑动距离可以使用this.x,这个参数是返回的结果是滑动元素li:first,距离最左边的一个距离,就相当于原点,scroll left ,this.x<0;scroll rigth ,this.x >0;同样,scroll也提供了 this.y ,这个可以参考pullUp/Down refresh例子中的js写法;
snap:捕获元素,通常设置为true,这样元素的滑动,是一屏一屏的滑动,你也可以设置成只捕获一个li元素,但是写法有要求:你可以写成“ li " or "li .a"但是”#scroller li" is wrong;
(3)
这里有个需求:iscroll只能实现元素的单方向的滑动,不能实现像jcarousellite那样的轮番循环的滑动,如果能把iscroll的滑动结合jcarousellite的循环展示,这该多好啊;
于是,就开始了我的工作:
1)判断元素向左向右滑动,
2)滑动一个元素,就把隐藏到div中的那个元素移到li元素的最后,可以直接的使用jquery操作元素,改变li布局,也可以改变li样式position,但是,实验证明:只改动position:left的坐标,下次获取元素的时候,使用eq()或者nth-child()方法获取的都不是指定的元素,这里我想到了使用refresh();好像也没有起作用,最后只能保险起见,先挪动position样式,然后更改li元素的位置,这样,不至于出现错误;
code:onScrollEnd:function(){
if(thisX > 0){ this.minScrollX=450; var last = $("#thelist li").last(); $("#thelist li").first().before(last); for(var i=0;i<=4;i++){ var positions = $("#thelist li").eq(i).position().left;console.log("..."+$("#thelist li").eq(0)); $("#thelist li").eq(i).css("left","+=90"); if(positions >=360){ $("#thelist li").eq(i).css("left","0px"); } this.minScrollX -= 90;//alert(this.minScrollX);myscroll.refresh(); } }else if(thisX < 0){//alert(this.options.bounce); var first = $("#thelist li").first(); //var scrollWidth = 450; $("#thelist li").last().after(first); this.maxScrollX = 450; for(var i=0;i<=4;i++){ //$(".scroller").css("width",scrollWidth+"px"); var positions = $("#thelist li").eq(i).position().left; $("#thelist li").eq(i).css("left","-=90"); if(positions <= 0){ $("#thelist li").eq(i).css("left","360px"); } this.maxScrollX += 90;//scrollWidth += 90;$(".scroller").css("width",scrollWidth+"px"); } } },
3)实现了,但是有个bug:每次的滑动都要先反弹,然后才能更换位置,这个原因是:我把置换位置的操作放到 了 方法onscrollEnd中执行了,应该放到onscrollMove中执行;而这又引发了另外的一种问题出现:滑动的时候,会闪屏,这个原因是因为每次的鼠标onmousemover事件都相应的触发了我写的置换元素位置的方法;这样,也就遇到了问题;怎样才能在onscrollMove中完美的实现滚动;
(4)问题:
怎样通过判断鼠标拖动的距离来判断应该滑动几个li元素;
怎样实现向左向右的滑动,而不会出现上面提到的反弹;
发表评论
-
简单倒计时模板插件
2017-07-12 12:01 586Countdown.js (function() { ... -
简单上传文件插件
2017-07-12 11:46 614team777.upload.js js: ; ... -
简单的toast提示,确认弹窗,显示图片预览插件
2017-07-12 11:29 803JS /** * team777 dialog plu ... -
简单数字键盘
2017-07-12 11:20 559好久没有写博客了,最近有个需求关于数字键盘的,找了下网上的 ... -
简化的原生ajax
2015-03-23 14:25 584/* * * path: seaAjax.js ... -
简单入门-JavaScript正则表达式
2015-03-23 14:19 804什么是正则表达式?这个问题可以参见:“正则表达式30分钟入门 ... -
Fxtpl v1.0 繁星前端模板引擎(非原创)
2014-08-18 13:48 3064Fxtpl 全新的JS模板引擎 Download t ... -
利用html5进行城市定位!aqi指数的获取
2014-07-08 17:52 21346<html><head> < ... -
seajs打包部署工具spm的使用总结
2014-06-30 14:22 898相信使用seajs的好处大家都是知道的,接触seajs好像 ... -
javaScript的性能优化
2014-01-17 14:05 1220随着网络的发展,网速 ... -
秒杀倒计时控件
2014-01-17 11:20 3116/** * User: yongwang * Da ... -
Nginx 下缓存静态文件(如css js)(转)
2013-05-31 13:48 13880目的:缓存nginx服务器的静态文件。如css,js, ... -
百度地图API文档
2012-11-13 18:31 1084sdfsfsdf -
JavaScript 图片的上传前预览(兼容所有浏览器)
2012-10-11 09:17 52453功能描述 通过 JavaScript 实现图片的 ... -
实现局部图片的懒加载
2012-08-31 14:52 5439此方式适用和iscroll结合使用,若用于普 ... -
iscroll实现图片的循环滑动
2012-08-31 10:19 2191<div class="gexian" ... -
iScroll框架的修改
2012-06-29 16:05 1771最近做的一个项目,用到了iScroll框架,在使用过程中 ... -
iScroll 左右滑动的时候,阻止上下滑动e.preventDefault()
2012-06-29 15:54 11759scroll.js 触屏手机 滚动效果代码库! 很不错 ... -
iscroll介绍
2012-06-12 18:52 0参考 http://hi.baidu.com/xiaowuph ... -
JS页面跳转和js对iframe进行页面跳转、刷新
2012-04-17 10:48 3932一、JS方式的页面跳转1.window.loc ...
相关推荐
全书分为11章,包含网页效果、DOM元素与属性、HTML事件、CSS样式、用户输入自动完成、拖放、图形图像、AJAX、算法、jQuery Mobile应用、浏览器、Cookies等jQuery技术内容,对提高网站开发人员和设计人员的jQuery技术...
可使用标准Windows元素创建图形用户界面(GUI)屏幕,包括框架窗口、会话、菜单、工具栏、标签、按钮、复选框、单选按钮、滚动条、滑动调节框、微调框、组合框、树列表、列表框、编辑框以及静态文本等。 通过现有...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
3.40 使用marquee实现文字上下滚动 3.41 类似安装效果的textarea滚动 3.42 始终显示在最顶端的文本 3.43 JavaScript过滤SQL注入字符 3.44 textarea内实现行的翻页效果 3.45 textarea中的文本插入 3.46 查找两段文本...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
3.40 使用marquee实现文字上下滚动 3.41 类似安装效果的textarea滚动 3.42 始终显示在最顶端的文本 3.43 JavaScript过滤SQL注入字符 3.44 textarea内实现行的翻页效果 3.45 textarea中的文本插入 3.46 查找两段文本...
4.2.3 表单元素属性和事件 4.2.4 表单验证 4.3 Anchor与Link对象 4.3.1 Anchor对象 4.3.2 Link对象 4.4 Image对象 4.4.1 图像翻转 4.4.2 图像载入 第5章 JavaScnpt其他常用窗口对象 5.1 Window对象 ...
客户端滚动事件。 客户端beforeCallback事件。 ColumnResizeRedistributeWidth属性用于控制缩放状态。 ComponentArt Menu 引入(已选)checking和(未选)unchecking项的概念。允许菜单项成为复选框或者单元按钮。 ...
14.2.5 图片滑动效果 423 14.2.6 三维相册 433 14.3 时间特效 442 14.3.1 时钟提示自动关闭 442 14.3.2 日历生成器 444 14.4 窗口特效 450 14.4.1 窗口拖动 451 14.4.2 图层受标签控制显示 457 14.5 鼠标特效 460 ...
查看1.2.htm中noscript显示效果的方法如下: 1.将该实例复制到C:\Inetpub\wwwroot下; 2.选择浏览器的“工具”-“安全”-“本地Intranet”-“自定义级别”-“活动脚本”中选用“禁用”单选框 3.在浏览器中...
客户端滚动事件。 客户端beforeCallback事件。 ColumnResizeRedistributeWidth属性用于控制缩放状态。 ComponentArt Menu 引入(已选)checking和(未选)unchecking项的概念。允许菜单项成为复选框...
客户端滚动事件。 客户端beforeCallback事件。 ColumnResizeRedistributeWidth属性用于控制缩放状态。 ComponentArt Menu 引入(已选)checking和(未选)unchecking项的概念。允许菜单项成为复选框...
查看1.2.htm中noscript显示效果的方法如下: 1.将该实例复制到C:\Inetpub\wwwroot下; 2.选择浏览器的“工具”-“安全”-“本地Intranet”-“自定义级别”-“活动脚本”中选用“禁用”单选框 3.在浏览器中...
tab菜单手势滑动切换,包含滚动条时自动过滤;侧边栏手势支持:文件管理树目录,后台菜单侧边栏,个人中心侧边栏;在页面右滑可打开侧边栏,左滑关闭;手势处理:点击元素允许input,但当前焦点为input时忽略,点击...