使 div 高度为向下滑动的距离

Posted

技术标签:

【中文标题】使 div 高度为向下滑动的距离【英文标题】:Make div height the distance of swipe down 【发布时间】:2013-11-02 20:34:21 【问题描述】:

我正在尝试在 body 上发生向下滑动事件时逐渐显示 div。

我目前正在使用 jQuery 版本的hammer.js 来监听向下滑动,但是当滑动发生在该值时,我如何获取滑动距离并更改 div 的高度?

这并不多,但这是我目前所拥有的:

var distance;
$('body').on('swipedown', function()

    // set distance to swipe distance
    $('header, #header, [role="banner"]').css('height', distance);
);

但是,上面不是只设置向下滑动结束时的距离吗?向下滑动时如何设置距离?

我将不胜感激任何和所有的帮助!

【问题讨论】:

【参考方案1】:

通过hammer.js swipedown事件触发,你的函数会在事件对象中获取一个手势对象。

你可以这样得到

Hammer(document.body).on('swipedown', function(e)
    gesture = e.gesture

    // gesture.distance or gesture.deltaY is swipe distance
    // and you can console.log(gesture) to find more!
);

【讨论】:

啊,我明白了。谢谢你。等等,我在试试。为什么当我向下滑动时这不起作用:jsfiddle.net/ExeXq/1 如果使用鼠标,锤子事件很难触发。我不确定,但它可能是框架错误?您应该为 body 和 html 标签添加样式 height: 100% 以获得最大检测区域。 我增加了身体的触摸区域,我正在使用 Hammer 就像示例一样。我正在移动设备上进行测试。这里:jsfiddle.net/ExeXq/3

以上是关于使 div 高度为向下滑动的距离的主要内容,如果未能解决你的问题,请参考以下文章

使用js或jq控制一个div,当滚动到页面顶部的时候固定在顶部,离开可继续滚动吗?

鼠标滑动一定距离的左侧菜单置顶效果

div随鼠标移动

jquery 让DIV相当于body定位,然后随滚动条向下滚动

不同范围的滑动距离

如何获取div距离浏览器顶部的高度