1

我试图在固定标题功能方面模仿以下页面。 http://jquerymobile.com/demos/1.0.1/docs/toolbars/bars-fixed.html

但是,随着 jquerymobile 的较新版本,我相信他们删除了滚动上的淡入/淡出功能。

新的 jquerymobile 版本有没有办法模仿这种行为?

4

2 回答 2

1

如果您正在使用data-position="fixed"工具栏,那么您应该能够data-attributes在标签中添加一对以允许“切换”工具栏:

<div data-role="footer" data-tap-toggle="true" data-transition="fade">
    ...
</div>

文档:http: //jquerymobile.com/demos/1.1.0/docs/toolbars/bars-fixed-options.html

这将适用于水龙头,滚动我相信你必须使用自己的事件处理程序:

//when a user starts to scroll, hide the toolbar(s)
$(window).bind('scrollstart', function () {
    $.mobile.activePage.children("[data-position='fixed']").fixedtoolbar('hide');

//when a user stops a scroll, show the toolbar(s)
}).bind('scrollstop', function () {
    $.mobile.activePage.children("[data-position='fixed']").fixedtoolbar('show');
});

这是一个演示:http: //jsfiddle.net/BCTpK/

制作完演示后,我意识到设置超时以使scrollstartandscrollstop事件不会频繁触发是个好主意:

var timer = null;

//when a user starts to scroll, hide the toolbar(s)
$(window).bind('scrollstart', function () {
    clearTimeout(timer);
    timer = setTimeout(function () {
        $.mobile.activePage.children("[data-position='fixed']").fixedtoolbar('hide');
    }, 100);

//when a user stops a scroll, show the toolbar(s)
}).bind('scrollstop', function () {
    clearTimeout(timer);
    timer = setTimeout(function () {
        $.mobile.activePage.children("[data-position='fixed']").fixedtoolbar('show');
    }, 100);
});​
于 2012-04-26T19:05:20.767 回答
0

您想将此行为用于工具栏吗?

然后你也可以检查JQM 1.1。发行说明,它包含一个指向 polyfill 的链接,以使用旧的固定工具栏行为。

这是预览 URLGithub repo

如果您想将行为用于其他一些元素(页眉/页脚任何您喜欢的元素),我从 polyfill 中获取了一个函数来重新定位 show() 并像这样使用它:

// reposition before showing - based on JQM fixedtoolbar polyfill   
var $popPanel = YOUR_ELEMENT(S) to be repositioned
$popPanel.jqmData("fixed") == "top" ? 
    $popPanel.css( "top", $( window ).scrollTop() + "px" ) :
        $popPanel.css( "bottom", $wrap.outerHeight() - $( window ).scrollTop() - $.mobile.getScreenHeight() + "px" );   

这将重新定位您需要添加的元素data-fixed="top/bottom"

要过渡到我正在使用的元素:

// show $popPanel
$popPanel
    // add transition class - this is using slide
    .addClass('in')
    .show('fast')
// clean up
window.setTimeout( function() {
    $popPanel.removeClass('in');
    });

我喜欢 JQM 1.0 中的这个功能,但我认为 polyfill 更好,因为我只使用这个片段而不是需要完整的 old-fixed-toolbars 处理程序。

于 2012-04-26T21:34:55.913 回答