这里是 jquery 实现的
我需要使用原生的代码, 给个函数.在 vue 使用的, 或者有类似的插件也欢迎推荐下
这里是 jquery 实现的
我需要使用原生的代码, 给个函数.在 vue 使用的, 或者有类似的插件也欢迎推荐下
1.给该区域加个ref属性,使用this.$refs.refName获取该区域;
2.获取该区域的高度;
3.监听该区域滚动事件,获取该区域的scrollTop数值(this.$refs.refName..addEventListener('scroll', function() {}))
4.与高度进行计算,计算出百分比,设置个data存储这变量实时显示
需要通过js来监听浏览器滚动的距离,当滚动到多少距离的时候,我们来设置div的position参数。
<style>
*{
margin: 0;padding: 0;
}
body{
height: 1500px;
}
.demo{
position: relative;left: 10px;top: 10px;z-index:9;width: 500px;height: 200px;background: #F0AD4E;
}
</style>
//html
<p style="height: 100px;">测试</p>
<div class="demo" id="demo">
内容
</div>
js中代码:
function onscroll(distance){//s滚动的距离,offset默认为元素距离顶部的距离
var s = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
dom = document.getElementById('demo'),
offset= dom.offsetTop || distance;
dom.style.position=s>offset?"fixed":"relative";
};
window.addEventListener('scroll',onscroll());
来源:fly63.com
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决