html隐藏手机端某个模块,移动端触摸上拉隐藏指定模块内容,有过度效果(同时页面iscroll滚动)...

应用场景:触碰屏幕进行上拉隐藏指定模块内容,有过度效果;在滚动到第一条内容的时候,才可以进行下拉重新出现该模块内容。

style样式:

*{

margin: 0;

padding: 0;

font-family: "微软雅黑";

}

html,body{

width: 100%;

height: 100%;

position: relative;

font-size: 16px;

}

body体代码:

advance.png

內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容
內容

script代码:需要引入jq和iscroll.js

var myScroll;

var myScroll2;

var startx, starty, all_y, endX, endY, distanceX, distanceY;

var isdown = true;//当内容滚动到第一条的时候才可以进行下滑出现原有内容

$(function() {

touch();//监听上划事件

})

//监听上划事件

function touch(){

//手指接触屏幕

$('body').bind('touchstart',function(e){

startX = e.originalEvent.changedTouches[0].pageX,

startY = e.originalEvent.changedTouches[0].pageY;

all_y = startY;

});

$('body').bind('touchmove',function(e){

//获取滑动屏幕时的X,Y

endX = e.originalEvent.changedTouches[0].pageX,

endY = e.originalEvent.changedTouches[0].pageY;

//获取滑动距离

distanceX = endX-startX;

distanceY = endY-startY;

//判断滑动方向

if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX>0){

// alert('往右滑动');

}else if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX<0){

// alert('往左滑动');

}else if(Math.abs(distanceX)

// alert('往上滑动');

if($(".first").height()>0){

$(".first").stop().animate({transform:"scaleY(0)"},150);

$(".first").stop().animate({height:"0"},150);

$(".second").stop().animate({top:"0"},150);

$(".third").css("height","78%");

$(".third").css("top","22%");

if(myScroll){

myScroll.destroy();myScrollInit();//初始化动态信息列表滚动

}else{

myScrollInit();//初始化动态信息列表滚动

}

}

}else if(Math.abs(distanceX)0){

if($(".first").height()<=0 && isdown==true){

$(".first").stop().animate({transform:"scaleY(1)"},150);

$(".first").stop().animate({height:"20%"},150);

$(".second").stop().animate({top:"22%"},150);

$(".third").css("height","56%");

$(".third").css("top","44%");

}

}

});

}

function myScrollInit(){

myScroll = new iScroll("third",{

mouseWheel:true,

click: true,

taps: true,

onScrollMove:function(){

},

onScrollEnd:function(){

if(Math.abs(this.y)<=50){//当内容滚动到第一条的时候才可以进行下滑出现原有内容

if(isdown==true) return;

isdown = true;

}else{

if(isdown==false) return;

isdown = false;

}

touch();

},

onRefresh:function(){

}

})

if($("#third").height()>$(".third_box").height()){

myScroll.destroy();

}

}

想查看具体的页面效果可以至百度云下载查看:

链接:https://pan.baidu.com/s/1WXLULJAG7PUvdik8S679-Q

提取码:yxt7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、遇顶固定的例子 我一直以为是某个div或层随屏幕滚动,遇顶则固定,离开浏览器顶部又还原这样的例子其实不少,其实它的名字叫“层的智能浮动效果”。目前我们在国内的商业网站上就常常看到这样的效果了。例如淘宝网的搜索结果页的排序水平条,在默认状态时,该工具条是跟随页面滚动的,如下图: 而当我们下拉滚动条,随着页面向下滚动,当此工具条接触到浏览器的上边缘时,这时就会独立出来固定在顶部,不跟随页面滚动滚动了,如下图: 类似的例子效果我们在别的网站上都有看到过,例如腾讯微博首页上,当我们下拉屏幕浏览最新微博时,工具条也会出现这个效果,如下图: 这个效果看上去方便,贴心,也许还带推动广告的促销呢。原理其实很简单,本文展示两种方法。 二、智能浮动效果的实现原理 它分两种状态,一是默认状态,二是浮动固顶状态。 默认状态就是默认状态,什么也不用做,保持原有的CSS就好。无论有没有对它做定位,做了absolute也好,没做也好,都行。 关键是当浏览器屏幕滚动时,该对象div层要移除浏览器界面视区的时候,是要修改它的position属性,让它浮动在窗口的上沿显示就行了。最好的position属性是fixed,可以在IE6+和其他浏览器浮动层平的固定定位,由于IE6老大哥不支持fixed属性,所以可以另外赋予它absolute属性。当然也会产生副作用——滚动不平。不过也无所谓了,在微软公布不再修补更新XP漏洞,在中国360安全卫士的帮助下虽然大家仍然使用XP,但IE的用户已经是少之又少了。 那接下来,如何判断当前div层与浏览器窗口的上边缘接触了呢?遇到浏览器顶部了呢? 当浮动层div与浏览器窗口上边缘接触的一瞬间,其页面垂直偏移值与页面滚动高度是一致的,所以我们就用这个进行判断。那如何获得页面上元素距离页面的垂直距离呢? 这里则是使用javaScript库实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值