当 #content 区域长于窗口高度(本机或 Vue.js)时收听
Listen when #content area is longer than window height (native or Vue.js)
我有一个以控件作为页脚的内容区域。控件始终位于内容区域下方。当内容区域长于window.innerHeight
时,我想将页脚固定(位置:固定)到窗口底部,以便控件始终可见。如果内容区域小于窗口高度,则它再次位于其下方(位置:相对)。
我想我已经在调整窗口大小时实现了这一目标。但是,我也想听 #contentdiv,因为它包含一个文本区域,当用户在其中键入时,该文本区域可能会比窗口更长。我也需要某种事件侦听器。
window.addEventListener('resize', function() {
var viewportHeight = window.innerHeight
var contentHeight = document.getElementById('content').clientHeight;
if (contentHeight > viewportHeight) {
console.log('Larger')
} else {
console.log('Smaller')
}
}, true)
我使用的是 Vue.js所以无论是这个还是原生的 Javascript,我都没有使用 jQuery。
嗯,
这并不容易。由于我不了解 Vue.js我只能告诉你原生 JS 解决方案 - 有两种方法:
1)如果内容仅在某些特定操作上更改,例如。用户编辑文本区域,然后您可以将高度检查器功能附加到相应的事件。
2)更通用的解决方案是设置功能,该功能将持续监视变化,如setInterval
或requestAnimationFrame
。
从性能的角度来看,第一个示例更好,但可能更难实现,这取决于有多少东西可以改变内容的大小。
相关文章:
- 如何创建带有插槽的vue js组件预加载程序
- 引用vue.js中v-for中的上一个值
- 如何访问<插槽>内部v-for(vue.js)
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- Vue.js获取组件中的一个元素
- 将自定义脚本加载到Vue.js组件中
- Vue.js:手表数组长度
- Vue.js片段实例
- vue-js-单选按钮won't默认情况下使用v-model属性进行检查
- 访问JQuery中的vue-js变量
- 如何在Vue.js中使用列表视图
- Vue.js-插值错误-如何将样式修改为v-bind:style
- 如何从Vue.js中的子组件访问父方法
- Ajax文件上传Vue.js
- Vue.js如何在定义API变量之前实现自定义过滤器
- Vue.js 在方法内失去范围
- Vue.js 数据对象不适用于某些 lodash 函数
- Vue.js继承调用父方法
- 使用 Vue.js 调用 Node.js 服务器
- 从mixin Vue.js获取数据