js鼠标移入文字滚动的效果

js鼠标移入文字滚动的效果


通过指定当前元素父元素的鼠标进入移出事件实现。

let movetext = (el) => {
    if (!el) { return }
    let boxw = el.offsetWidth;
    let maxW = el.scrollWidth;
    let paremtDom = el.parentNode;
    if (!paremtDom) { return }
    let _cz = maxW - boxw;
    if (_cz > 0) {
        el.style.position = 'relative';
        el.style.zIndex = -1;
        let timer = '';
        let start = () => {
            if (timer) {
                clearInterval(timer)
            }
            let startnum = 0;
            timer = setInterval(() => {
                // console.log(startnum, maxW, Math.abs(startnum) - maxW > 0);
                el.style.left = startnum + 'px';
                if (Math.abs(startnum) - maxW > 0) {
                    el.style.left = boxw + 'px';
                    startnum = boxw;
                }
                startnum = startnum - 2;
            }, 83);
        }
        paremtDom.onmouseover = function(e) {
            start()
            el.style.width = maxW * 1 + 2 + 'px';
        }
        paremtDom.onmouseout = () => {
            clearInterval(timer)
            el.style.width = boxw + 'px';
            el.style.left = 0;
        }
    }
}

结合vue指令实现

Vue.directive("textscreen", {
   	inserted: (el, binding, vnode) => {
   		// 直接调用上面的方法
       	movetext(el)
   	},
   	update: (el, binding, vnode) => {
       movetext(el)
   	}
});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值