在做一个Phonegap+Jqm工程的时候,出现了如题的问题,相信很多人都遇到过Jquerymobile点击body时候header和footer会闪烁的显示和隐藏问题,fixed却并不能真正fixed,如果想将header和footer真正固定住,还是很麻烦的。起初是想通过监听body的click事件,覆盖jquerymobile默认的click让header和footer能够真正固定下来,不会因为点击body而出现隐藏和出现的问题,但是设想是美好的,结果是残酷的,我在电脑的chrome浏览器上能够正常的取消jqm的默认单击隐藏header和footer的事件,可是一放到手机上就发现完全不是那么回事,通过e.preventDefault(),return false ,e.stopPropgation()等都不能阻止jqm的默认事件的触发。时间紧急,我就只能变通了,通过观察单击时候header和footer的样式区别来发现蛛丝马迹,最后发现是这些样式来实现了header和footer的渐入渐出,通过禁用其过度效果来阻止header的显示和隐藏,最终达到效果,代码如下:
     
 
 
/*Solve Jquery mobile header show and hide when click the long body*/
.in {
    /*-webkit-animation-timing-function: ease-out;
    -webkit-animation-duration: 350ms;
    -moz-animation-timing-function: ease-out;
    -moz-animation-duration: 350ms;
    animation-timing-function: ease-out;
    animation-duration: 350ms;*/
    -webkit-animation-timing-function: none;
    -webkit-animation-duration: 0;
    -moz-animation-timing-function: none;
    -moz-animation-duration: 0;
    animation-timing-function: ease-out;
    animation-duration: 0;
}
 
.out {
    -webkit-animation-timing-function: ease-in;
    -webkit-animation-duration: 0;
    -moz-animation-timing-function: ease-in;
    -moz-animation-duration: 0;
    animation-timing-function: ease-in;
    animation-duration: 0;
}
 
 
 
 
.slidedown.in,.slideup.in {
    /*-webkit-transform: translateY(0);
    -webkit-animation-name: slideinfromtop;
    -webkit-animation-duration: 250ms;
    -moz-transform: translateY(0);
    -moz-animation-name: slideinfromtop;
    -moz-animation-duration: 250ms;*/
    -webkit-transform: none;
    -webkit-animation-name: none;
    -webkit-animation-duration: 0ms;
    -moz-transform: none;
    -moz-animation-name: none;
    -moz-animation-duration: 0ms;
}
 
 
.slidedown.out,.slideup.out {
    /*-webkit-animation-name: fadeout;
    -webkit-animation-duration: 100ms;
    -moz-animation-name: fadeout;
    -moz-animation-duration: 100ms;
    animation-name: fadeout;
    animation-duration: 100ms;*/
    -webkit-animation-name: none;
    -webkit-animation-duration: 0ms;
    -moz-animation-name: none;
    -moz-animation-duration: 0ms;
    animation-name: none;
    animation-duration: 0ms;
}
 
    .slidedown.out.reverse, .slideup.out.reverse {
        /*-webkit-transform: translateY(-100%);
        -webkit-animation-name: slideouttotop;
        -webkit-animation-duration: 200ms;
        -moz-transform: translateY(-100%);
        -moz-animation-name: slideouttotop;
        -moz-animation-duration: 200ms;
        transform: translateY(-100%);
        animation-name: slideouttotop;
        animation-duration: 200ms;*/
        -webkit-transform: none ;
        -webkit-animation-name: none ;
        -webkit-animation-duration: 200ms ;
        -moz-transform: none ;
        -moz-animation-name: none ;
        -moz-animation-duration: 200ms ;
        transform: none;
        animation-name: none ;
        animation-duration: 200ms ;
    }
 
.slidedown.in.reverse, .slideup.in.reverse {
    /*-webkit-animation-name: fadein;
    -webkit-animation-duration: 150ms;
    -moz-animation-name: fadein;
    -moz-animation-duration: 150ms;
    animation-name: fadein;
    animation-duration: 150ms;*/
    -webkit-animation-name: none;
    -webkit-animation-duration: 0;
    -moz-animation-name: none;
    -moz-animation-duration: 0;
    animation-name: none;
    animation-duration: 0;
}
/*Solve Jquery mobile header show and hide when click the long body*/
 

   这个解决方案还是比较ugly的,上述方案实际是取消了slideup和slidedown的效果,带来的副作用就是slideup和slidedown失效。最终发现解决方案如此简单:在header和footer设置如下属性即可data-tap-toggle="false"。

解决Jquery mobile点击较长文本body的时候Header和footer会渐入渐出的问题的更多相关文章

  1. jquery Mobile点击显示加载等待效果

    点击某个按钮或链接时,触发等待加载效果: <script> <!-- $(document).bind("mobileinit", function(){ }); ...

  2. 解决jquery mobile的遇到高版本Chrome一直转圈,页面加载不出来的情况。

    把这么一段代码,加到jquery.mobile.js中后问题解决了. $(document).on('mobileinit',function(){ $.mobile.changePage.defau ...

  3. 你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题

    前段时间做项目由于采用的MD设计,所以必须要使用RecyclerView全面代替ListView.但是开发中遇到了需要实现RecyclerView上拉加载.下拉刷新和添加Header以及Footer等 ...

  4. 解决jquery mobile的header和footer在点击屏幕的时候消失的办法

    给header和footer添加 data-position="fixed" 和 data-tap-toggle="false"即可,代码如下: <div ...

  5. 以“图片渐入渐出”为例讲述jQuery插件的具体实现

    首先声明,此代码以网友“斯迈欧”原创作为此例的讲解: 在这之前我们先看看我们要做的效果是什么样的: 解析下面的样式:我们要图片在过“一定时间”后自动切换,在右下角处有小方块似数字1,2,3,4,这些数 ...

  6. jquery( 点击按钮出来文本框并限制文本框的个数)

    // 首先呢  编辑这个文章  主要是用于和大家的交流  以便学习和交流!! <div class="form-group" id="spots"> ...

  7. 第十三篇、jQuery Mobile

    API-->搜索data 0.page data-transition="slide" // 页面切换效果 data-position="fixed" / ...

  8. 常见26个jquery使用技巧详解(比如禁止右键点击、隐藏文本框文字等)

      来自:http://www.xueit.com/js/show-6015-1.aspx 本文列出jquery一些应用小技巧,比如有禁止右键点击.隐藏搜索文本框文字.在新窗口中打开链接.检测浏览器. ...

  9. JQuery Mobile - 解决动态更新页面内容,CSS失效问题!

    今天编写JQuery Mobile程序,需要对数组数据动态创建,并且每条数据对应一个复选框,于是我很顺利写了一个Demo,当我运行时候发现,和我期望的不一样!复选框确实创建出来了,但是却没有CSS效果 ...

随机推荐

  1. web页面之响应式布局

    一.什么是响应式布局? 响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网 ...

  2. Linux学习笔记<五>

    管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...

  3. Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取

    CMakeLists.txt project(wMA) add_library(wMA SHARED wMA.cpp) wMA.h #pragma once #ifndef WMA_WMA_H #de ...

  4. php事务

    <?php set_time_limit(); function sel($time,$number,$count){ ){ sel($time,$number,$count); return ...

  5. logback日志写入数据库(mysql)配置

    如题  建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1  logback 配置文件(如下) <?xml version="1.0" encoding ...

  6. AD域控制器通过组策略禁止USB设备

    问题:域环境下如何禁用USB口设备? 第一种:用传统的办法,在Bios中禁用USB. 第二种: 微软技术支持回答:根据您的需求, Windows识别USB设备主要通过两个文件,一个是Usbstor.p ...

  7. Sublime Text 3 安装Package Control

    原来Subl3安装Package Control很麻烦,现在简单的方法来了 一.简单的安装方法 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码: ...

  8. 菜鸟笔记:java变量命名及峰驼式命名法

    如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理---变量名! 需要注意,给酒店房间起名字时可以是数字,如"802",也可以是有趣的名字,如" ...

  9. 利用JSON实现数组去重

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. react+redux官方实例TODO从最简单的入门(4)-- 改

    上一篇文章实现了<删>这个功能,那么我们继续添加下一功能--<改> 这个修改的功能是通过双击每个子选项实现 第一步:按规矩来,添加一个状态声明 第二步:action中约定我们要 ...