报bug,求解决
先说一下需求
为了提高加载速度,页面是预加载的,每次打开加载的数据都不一样。返回时清空数据。
页面有scroll滚动功能和图片预览功能。
demo附件已上传
1.scroll
当我重置dom时,重新调用
mui('.mui-scroll-wrapper').scroll(); //回弹
重新初始化 看mui-container 还是有transition位移的
有没有方法去初始化
我自己去还原为初始状态,重新加载数据时 依然会滚动到原状态,当dom高度比较小时,白屏。
//TODO dom树变化后,scroll如何重置?
//如下手动恢复后,页面重新打开后单击,scroll依然滚到上一次所在的位置
//style="-webkit-transform: translate3d(0px, 0px, 0px) translateZ(0px); -webkit-transition-duration: 0ms; transition-duration: 0ms;"
container.style.webkitTransform = 'translate3d(0px, 0px, 0px) translateZ(0px)';
container.style.webkitTransition = '0ms';
//-webkit-transition-duration: 500ms; transition-duration: 500ms; opacity: 0;
var cnext = container.nextElementSibling;
cnext.webkitTransition = '0ms';
//-webkit-transition-duration: 0ms; transition-duration: 0ms; display: block; height: 410px; -webkit-transform: translate3d(0px, 0px, 0px) translateZ(0px);
var chld = cnext.querySelector('.mui-scrollbar-indicator');
chld.webkitTransition = '0ms';
chld.webkitTransform = 'translate3d(0px, 0px, 0px) translateZ(0px)';
chld.height = container.clientHeight;
2.previewImage
当我清空当前预加载页面数据时,重新加载数据并打开的时候 有以下bug:
页面内有两个preview-group 第一个g1是一张图片(头像), 第二个g2是多张图片 ,重新加在数据并mui.previewImage(); 后头像依然未变(实际上已经更改了), g2已经更改了,不过单击g2的图片x且该g2_index>0时 显示的却是g2的第一张图片,看代码有这个方法:
- 写死的img且未更改previewimage.js
bug:预加载重新打开后单击g1,显示原图片,单击g2>1的图片 显示的却是第一张图片
<div class="mui-content">
<!--
作者:1020450921@qq.com
时间:2015-08-14
描述:写死的img,再次previewImage时重新打开依然是上一次的图片
-->
<img id="img1" data-preview-src data-preview-group='1' />
<p>Group2</p>
<div id="imgContainer">
</div>
</div>
<script>
mui.back = function() {
document.getElementById("img1").src = '';
document.getElementById("imgContainer").innerHTML = '';
oldback();
}
</script>
- 写死img且更改previewimage.js
bug: 和上面相同
$.previewImage = function(options) {
//TODO IMG写死的情况下,注释掉也无济于事
//动态生成的IMG,需要注释掉
// if (!previewImageApi) {
previewImageApi = new PreviewImage(options);
// }
return previewImageApi;
};
var oldback = mui.back;
mui.back = function() {
var pre = document.getElementById("__MUI_PREVIEWIMAGE");
pre && pre.parentNode.removeChild(pre);
document.getElementById("img1").src = '';
//document.getElementById("imgContainer0").innerHTML='';
document.getElementById("imgContainer").innerHTML = '';
oldback();
}
- 动态生成img,且不更改previewimage.js ,不删除生成的__MUI_PREVIEWIMAGE
bug: g1 再次正常了,不过g2单击index>0的的图片 依然显示g2_0
<div id="imgContainer0">
</div>
<!--
作者:1020450921@qq.com
时间:2015-08-14
描述:写死的img,再次previewImage时重新打开依然是上一次的图片
-->
<!--<img id="img1" data-preview-src data-preview-group='1' />-->
<script>
var oldback = mui.back;
mui.back = function() {
// var pre = document.getElementById("__MUI_PREVIEWIMAGE");
// pre && pre.parentNode.removeChild(pre);
// document.getElementById("img1").src = '';
document.getElementById("imgContainer0").innerHTML='';
document.getElementById("imgContainer").innerHTML = '';
oldback();
}
</script>
- 动态生成img,且更改previewimage.js ,删除生成的__MUI_PREVIEWIMAGE
bug:预加载页面成功打开并返回后再次打开,单击g2_index>1 时,显示g2_0,再次关闭并打开,显示正常
目前暂时使用这种debug的方法
tinny100
就用的这个代码,有错误提示[ERROR] : TypeError: undefined is not a function (evaluating 'scrollap.refresh()')
2015-12-03 14:00
sql开发者
3Q
2017-04-12 09:54