【问题标题】:jQuery Scrollable Div for Mobile Websites用于移动网站的 jQuery 可滚动 Div
【发布时间】:2010-11-22 16:22:49
【问题描述】:

我正在尝试为移动网站创建一个 jQuery 插件,将 div 容器转换为可滚动容器。我通过将 div 容器内的所有子项包装在另一个绝对定位的 div 容器中来实现这一点。然后我修改内部div的顶部或左侧css样式以模拟上下或左右移动文本。我正在使用触摸事件侦听器来确定何时移动滚动 div。

但是,我在设置内部滚动 div 的 width() 时遇到了一些问题。以下是代码示例:

myObj.ready(function(){
myObj.css({ 'position' : 'relative', 'overflow' : 'hidden' }).wrapInner('<div id="scrollCntr">');
$('#scrollCntr').prepend("<img src='scrollBar.png' id='scrollBar' class='horizontal'");
$('#scrollCntr').height( myObj.height() );

if ( config.width <= 0 ) {
    $('#scrollCntr').children().each(function(){
        if ( $(this).css('display') == 'inline' || $(this).css('float') == 'left' || $(this).css('float') == 'right' ) {
            totalWidth += $(this).width();

            for( var i = 0; i < boxProps.length; i++ )
                if ( $(this).css(boxProps[i]) != "" )
                    totalWidth += parseInt( $(this).css(boxProps[i]).replace( /px/i, '' ).replace( /em/i, '' ).replace( /pt/i, '' ) );
        }
    });
} else {
    totalWidth = config.width;
}

console.log( totalWidth );
$('#scrollCntr').width( totalWidth );
console.log( $('#scrollCntr').width() );

});

在这种情况下,config.width 设置为 719,myObj 是正在滚动的容器 div。我不确定问题是什么。在我的演示中我没有遇到任何问题,当我的子元素只有图像时,但是当我将它应用到我的移动网站时,子元素在 div 框的位置,它一直存在问题。也许子元素没有及时加载?但这并不能解释为什么我不能设置滚动 div 的宽度。它肯定正在加载。我不知道问题是什么......

【问题讨论】:

  • 我想我发现了问题所在。容器 div 设置为 display: none ,直到用户采取特定操作。因此,它可以设置宽度,但不能检索这些宽度。有没有办法可以添加一个事件处理程序来监听我的容器 div 何时显示(显示:块)?

标签: jquery css jquery-plugins scroll mobile-phones


【解决方案1】:

知道了。在另一个问题上找到它:

jQuery event to trigger action when a div is made visible

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多