解决子元素滚动影响父元素的JS
2016-12-30 15:52
176 查看
因为我司一个聊天窗口里面聊天内容滚动起来到顶部的时候再滚就会触发窗口滚动条的滚动,搜了一下,找到张鑫旭大大的文章,感谢。
没错,依赖jQuery的一个扩展方法,上面代码只要拷贝到你页面的JS中,然后,你希望哪个元素滚动到底,父级不滚动,直接:
原文地址是http://www.zhangxinxu.com/wordpress/?p=5092
$.fn.scrollUnique = function() { return $(this).each(function() { var eventType = 'mousewheel'; // 火狐是DOMMouseScroll事件 if (document.mozHidden !== undefined) { eventType = 'DOMMouseScroll'; } $(this).on(eventType, function(event) { // 一些数据 var scrollTop = this.scrollTop, scrollHeight = this.scrollHeight, height = this.clientHeight; var delta = (event.originalEvent.wheelDelta) ? event.originalEvent.wheelDelta : -(event.originalEvent.detail || 0); if ((delta > 0 && scrollTop <= delta) || (delta < 0 && scrollHeight - height - scrollTop <= -1 * delta)) { // IE浏览器下滚动会跨越边界直接影响父级滚动,因此,临界时候手动边界滚动定位 this.scrollTop = delta > 0? 0: scrollHeight; // 向上滚 || 向下滚 event.preventDefault(); } }); }); };
没错,依赖jQuery的一个扩展方法,上面代码只要拷贝到你页面的JS中,然后,你希望哪个元素滚动到底,父级不滚动,直接:
$().scrollUnique();
原文地址是http://www.zhangxinxu.com/wordpress/?p=5092
相关文章推荐
- JS实现图片无缝滚动的完美解决 无间隙滚动
- 对联浮动广告JS代码不滚动不浮动的解决方法
- js自动生成的元素与页面原有元素发生堆叠的解决方法
- JS中批量给元素绑定事件过程使用闭包解决
- js处理局部scroll事件禁止外部scroll滚动解决办法,jquery.mousewheel.js处理时禁止办法说明
- js向上滚动文字问题的解决
- js"无缝"滚动原理(解决IE与"火狐"的差异)
- IE6使用jquery.bgiframe.js解决select元素不会正常隐藏的BUG
- js传参数受特殊字符影响错误的解决方法
- JS实现图片无缝滚动的完美解决 无间隙滚动
- 关于制作JS滚动特效常用的ScrollPic.js文件在IE6下不兼容的解决办法
- flash,activex对resizable,draggable元素的影响及解决方法
- 网页中JS对SEO的影响及解决方法
- JS实现图片无缝滚动的完美解决 无间隙滚动
- 对联浮动广告JS代码不滚动不浮动的解决方法
- JS动态创建元素的奇怪问题--待解决
- jquery的选择器$('')在IE6下对JS动态生成(比如ajax生成的)的元素失效的解决办法
- 在 360浏览器下 position:relative; 不随着滚动条的滚动而滚动而是飘在页面上 解决方法 给父级也就是出现滚动条的元素添加 position:relative;就ok l了
- JS中replace替换全部元素的解决办法
- js"无缝"滚动原理(解决IE与"火狐"的差异)