让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能

项目中有两份代码,一份是Main Site,一份是Mobile Site.Main Site里面主页使用到jQuery Tools Scrollable功能,让多张图片循环显示。但是这个功能移植到Mobile Site中,出现了一些问题。

因为本身要实现scrollable功能,必须有特定的html结构和css。然后调用scrollable()方法才能实现这个功能。一个基本scrollable实现代码可以参考jQuery Tools的官方文档。参考地址:http://jquerytools.org/demos/scrollable/

.scrollable{position:relative;overflow:hidden;width:660px;height:90px;
}

可以看出我们必须设置最后可显示区域 的宽和高。其实这个高度也就是所包含的图片的宽和高。在Mobile Site开发过程中,为了适应手机拥有不同的分辨率和大小尺寸。在开发过程必须对图片的width设置为100%,图片的height不设定。当用户使用 不同的分辨率的手机查看站点时,浏览器自动缩放图片。但是问题就来了,我们要实现scrollabel功能,必须设置可见区域的宽度和高度。

 

所以需要在页面load之后就进行 resize操作。基本解决办法是在调用scrollable()方法之前就进行图片的resize操作。但是这个解决方案有一个很的问题就是如何去判定 当前要显示的三张图片的第一章显示的默认宽高。因为我们将图片的width设置为100%,height需要等浏览器解析完成才能取得。如果本身图片不是 放在应用程序的目录,是从第三方或者云存储平台过来的话,取得图片的height都是为0,所以我们在项目代码中加入1秒的延时,通过延时1秒才去读取浏 览器默认使用width:100%显示的图片的高度。

 

效果如下:

代码如下:  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Scrollable with resizing for mobile web</title>

<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, width=device-width" /><style type="text/css">#mainContainer{margin: 0 auto;width: 100%;height: 100%;}#scrollable{/* required settings */position: relative;overflow: hidden;}.scrollable .items{/* this cannot be too large */width: 20000em;position: absolute;}.items div{float: left;}</style><!-- jQuery Library + UI Tools --><!--<script type="text/javascript" src="http://cdn.jquerytools.org/1.2.7/jquery.tools.min.js"></script>--><script src="jquery.tools.min.js" type="text/javascript"></script>
</head>
<body><div id="mainContainer"><a class="prev browse left"></a><!-- root element for scrollable --><div class="scrollable" id="scrollable"><!-- root element for the items --><div class="items"><!-- 1--><div><img id="originalImg" src="http://farm1.static.flickr.com/143/321464099_a7cfcb95cf.jpg"width="100%" /></div><!-- 2 --><div><img src="http://farm1.static.flickr.com/30/37446217_14bc95631a.jpg" width="100%" /></div><!-- 3 --><div><img src="http://farm1.static.flickr.com/200/507751258_5f13e3d802.jpg" width="100%" /></div></div></div><!-- "next page" action --><a class="next browse right"></a></div><div>Hello World.</div><script type="text/javascript">
function widthUpdate() {//$("body").width()即取得当前viewport的宽度
            $("#scrollable .items div img").css("width", $("body").width());var ModuleHeight = $("#scrollable .items div img").outerHeight();if (ModuleHeight != 0) {$("#scrollable").css("height", ModuleHeight);}}$(window).resize(function () {widthUpdate();});$(function () {setTimeout(function () {widthUpdate();}, 1000);//scrollable for images
            setTimeout(function () {$(".scrollable").scrollable({ speed: 400, circular: true }).navigator().autoscroll();}, 2000);});</script>
</body>
</html>

不 知道园子里面有人是否遇到过相同的问题。这个bug在本地测试问题好像不大,并且我们使用asp.net页面缓存。所以开发的时候根本发现不了这个问题。 上线之后,用户可能是第一次访问我们的站点,那么我们之前的代码获得图片的高度为0,所以根本不显示图片,但是我们resize浏览器窗口时,图片就显示 正常。本来想通过判断加载第一张图片是否完成的。使用的代码如下,但是依旧解决不了这个问题。不知道大家是否有更好的解决办法。

 

转载于:https://www.cnblogs.com/aaaba/archive/2013/04/13/3017904.html

让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能相关推荐

  1. 【jquery模仿net控件】简单的datalist控件更新,及其简单应用

    接上次的帖子:http://www.cnblogs.com/yexiaochai/archive/2012/01/22/2328729.html 简单的更新了一下代码,主要针对datalist,这次主 ...

  2. 弹出框页面中使用jquery.validate验证控件

    弹出框页面中使用jquery.validate验证控件有几个问题需要解决: 1,弹出框的提交事件完成后如何关闭弹出框页面? 2,提交不成功如何返回当前页? 3,如果知道验证事件成功? 之前笔者都是JS ...

  3. JQuery Highcharts图表控件使用说明

    JQuery Highcharts图表控件使用说明 Highcharts 官网:http://www.highcharts.com Highcharts 官网示例:http://www.highcha ...

  4. jquery日期时间控件

    代码下载地址:  jquery日期时间控件下载地址 .  工作中用到, 这里分享一下, 避免重复摸索劳动. 一. HTML 文件    <!DOCTYPE HTML PUBLIC "- ...

  5. jquery+bootstrap分页控件

    jquery+bootstrap分页控件 源码: (function ($) {$.fn.extend({ftx_pager: function (paraObj) {var total = para ...

  6. jQuery取得列表控件选中的option对象

    开发工具与关键技术:VS   后端 作者:陈芝番 撰写时间:2019.7.7 这个jQuery取得列表控件选中的option对象,比起原始表单控件清晰看到option对象,但还是各有各的特点,jQue ...

  7. KingPager,自己做的分页控件,纯JS,支持所有语言

    效果图如下: 简介: 1.JQuery分页控件,纯JS,支持任何语言 2.全部样式可通过CSS自定义(默认的就很好看) 3.非常灵活,1行代码即可实现分页 调用示例: <html xmlns=& ...

  8. java web 打印控件_web打印,web打印控件,dotnet web打印控件,java web打印控件,webprint...

    webprint打印参数设置小插件,主要实现打印纸张,边距,打印机等的设置. 主要功能: 设置页眉页脚属性 设置打印页面左右上下边距 设置打印方向,打印份数,打印指定页 打印模版和指定纸型绑定 设置自 ...

  9. .net OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 新解决方法...

    2019独角兽企业重金招聘Python工程师标准>>> 朋友找我帮原来的软件加一个小功能,程序是用VB.NET 写的. 软件需要与外部串口设备通信,一只带串口功能的压力表. 应该时间 ...

最新文章

  1. Duwamish深入剖析-配置篇
  2. 明明知道银行存款会贬值,为什么还有那么多人把钱放在银行?
  3. [css] 如何在白天和黑夜自动切换页面的颜色?
  4. 【蓝桥杯官网训练 - 历届试题】对局匹配(dp,思维,取模)
  5. 多线程中的互斥控制程序代码_Java中的并发——线程安全性
  6. C++中使用set和unordered_set的find方法时遇到的小坑
  7. 从曾经的无比辉煌,到如今彻底凉凉,万能充到底经历了什么?
  8. PSP(Python Server Pages) 快速实例
  9. 6-2 错误与异常处理
  10. vue实现播放rtmp直播视频流
  11. 幼儿园故事导入语案例_幼儿园大班语言故事
  12. php获取alexa世界排名值的函数
  13. PS和AI结合制作人物矢量图
  14. htmlparser 获取html,根据htmlparser写的一个提取页面纯文本的C#程序
  15. avdd-supply and vdd_io-supply两个属性解析调用regulator_get(dev, “vdd_io“)
  16. Git报错解决:remote: error: File:1f6cc8452313 157.10 MB, exceeds 100.00 MB
  17. Python进度条库tqdm详解
  18. 读书笔记-哈佛大学极简经济学1.
  19. raptor找素数_raptor取50到100素数
  20. openfire linux 启动,Openfire的启动过程与session管理

热门文章

  1. matlab 自动处理数据,Matlab Remote IPC自动化数据处理
  2. 开启应用的时候总是以管理员身份打开的解决方案
  3. brew mysql 无法启动_MAC OSX brew 升级 mysql5.6到5.7无法启动的问题
  4. linux cgi命令,Linux之cgi实现系统主机监控
  5. 安卓手机管理器_电脑文件快速搜索有everything,那手机呢?
  6. 辽宁地质工程职业学院计算机应用技术,辽宁地质工程职业学院10大好就业专业推荐...
  7. html标题怎么分开,html – 如何使用angularjs将标签标题与其主体分开?
  8. 2020 年 4 月编程语言排行榜:C 语言重回王者?
  9. bash 2_quantize.sh遇到错误2_quantize.sh: line 7: 29380 Segmentation fault解决方法
  10. Linux命令中的参数,linux中一些命令以及一些参数的用法