man.js注册自定义指令
Vue.directive('class', {
inserted: function (el, binding) {
binding.addClass = () => {
const { top } = el.getBoundingClientRect()
const h = document.documentElement.clientHeight || document.body.clientHeight
if (top < h-200) {
el.className = binding.value;
if (binding.addClass) {
window.removeEventListener('scroll', binding.addClass)
}
}
}
window.addEventListener('scroll', binding.addClass,true)
binding.addClass()
},
unbind: function (el, binding) {
if (binding.addClass) {
window.removeEventListener('scroll', binding.addClass)
console.log('取消事件绑定')
}
}
})
使用
<span v-class="'a'"></span> 'a'是class类名