js 实现两栏同时滚动

这个需求有点意思,拿出来和大家分享一下。
如果你去实现过这样的效果,或者类似这样的效果的,你会发现简单去 一栏控制另一栏的的滚动距离,另一栏类似控制第一栏的效果的话。你会发现基本上可能滚动不了,优化之后通过函数节流,等其他手段优化之后也是很卡,滚动会不流畅。
原因主要是因为当你改变一个元素的scrollTop 或者 scrollLeft值的时候这个时候会触发scroll事件,这样两边一种循环调用~就会滚动不了。
其实只需要把这个需要细分之后,就可以流畅的实现这个效果。
 首先清楚一件事 页面内元素滚动需要鼠标到底元素里面然后再滚动才会有效,明白这一点之后,这一切就会简单很多了。

 然后你只需要去控制 监听和解除监听 滚动的函数的函数就可以完美实现这个效果了。


 demo待续。。。欢迎交流

  

转载于:https://www.cnblogs.com/www-wwr/p/9023062.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现搜索栏placeholder滚动播放效果,可以使用CSS3动画和JavaScript实现。 首先,使用CSS3动画来实现placeholder的滚动效果,可以使用以下代码: ```css .search-input { animation: placeholder 10s linear infinite; } @keyframes placeholder { 0% { opacity: 1; } 20% { opacity: 0; } 40% { content: "Search for..."; opacity: 1; } 60% { content: "Find what you need..."; opacity: 1; } 80% { content: "Explore your interests..."; opacity: 1; } 100% { content: "Try me now..."; opacity: 1; } } ``` 上述代码中,使用了`animation`属性来定义动画效果,`placeholder`是动画名称,`10s`表示动画持续时间为10秒,`linear`表示动画速度为匀速,`infinite`表示动画无限循环。 接下来,使用JavaScript实现placeholder的动态替换,可以使用以下代码: ```javascript const placeholder = document.querySelector('.search-input').getAttribute('placeholder'); const phrases = ['Search for...', 'Find what you need...', 'Explore your interests...', 'Try me now...']; let i = 0; setInterval(() => { document.querySelector('.search-input').setAttribute('placeholder', phrases[i]); i = (i + 1) % phrases.length; }, 10000); ``` 上述代码中,使用`setInterval`函数来定时替换placeholder内容,`10000`表示每隔10秒替换一次。在替换时,将`phrases`数组中的内容依次赋值给placeholder,使用取余的方式实现数组循环。 以上就是实现搜索栏placeholder滚动播放效果的方法,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值