【问题标题】:JQuery scroller broken by Chrome v61's new scrolling conformance! :(jQuery 滚动条被 Chrome v61 的新滚动一致性破坏了! :(
【发布时间】:2018-03-13 23:38:09
【问题描述】:

我有一个运行良好的 Wordpress 网站...直到我今天查看它,它不会滚动,菜单也不起作用。

这是网址...

Thunderbox Entertainment

我在 Chrome 中查看它,但我无法用鼠标滚轮向下滚动,而且当我点击菜单项时,它们什么也不做。我没碰过它,上周它工作得很好。

如果我把鼠标移到最右边,会出现一个垂直滚动条,我可以用它来滚动...

它似乎在我 iPad 上的 Chrome 中也能正常工作。

一些研究告诉我,这是由于 Chrome v61 更新了它处理滚动的方式造成的。

代码可能在多个地方被破坏,但这是一个我怀疑不再有效的示例......

// Quick scrolling to content
		// ...................................................................
		$fullSlider.data('scrolling', false);
		var autoScrollTime = 650, 
			scrollEasing = 'easeInOutQuart', 
			pos = false;

		// DOMMouseScroll = Mozilla, onmousewheel = IE, mousewheel = everything else
		$('body').on('mousewheel onmousewheel DOMMouseScroll', function(e) {
			e = e.originalEvent || window.event;                        // Get the event
			wheelData = e.detail ? -e.detail : e.wheelDelta / 40;       // Wheel data for different browsers			
			contentStart = $('#AfterSlider').offset().top - wpAdminbar; // beginning of page content
			pos = Math.round(contentStart - $(document).scrollTop());   // Distance from top padder
			screenWidth =  $(window).width(); // Only use on large screens

			if ($fullSlider.data('scrolling')) {
				return false; // disable wheel
			} else {
				if (screenWidth < 768 || window.mobilecheck())
					return true; // do nothing on small screens
				if (wheelData < 0 ) {
					//scroll down
					scrollDir = 'down';
					// Auto scroll to content
					if ( pos > 20 ) {
						$fullSlider.data('scrolling', 'down'); // mark as active
						// Scroll to position
						$.scrollTo( contentStart, autoScrollTime, { 
							easing: scrollEasing, 
							onAfter: function() { $fullSlider.data('scrolling', false); } // mark complete
						});
						return false; // disable wheel (smoother effect)
					}
				} else {
					//scroll up
					scrollDelta = (scrollDir != 'up') ? 0 : scrollDelta; // reset delta on direction change
					scrollDir = 'up';
					// Auto scroll to slideshow
					if ( pos >= -1 ) {
						$fullSlider.data('scrolling', 'up'); // mark as active
						// Scroll to position
						$.scrollTo( 0, autoScrollTime, {
							easing: scrollEasing, 
							onAfter: function() { $fullSlider.data('scrolling', false); } // mark complete
						});
						return false; // disable wheel (smoother effect)
					} 
					// Hard stop at content top
					scrollDelta = (scrollDelta < 620) ? scrollDelta + (wheelData * 45) : scrollDelta; // should be (wheelData * 40) but we're being conservative
					scrollEndPos = pos + scrollDelta;
					if ( pos < -1 && (pos > -120 || scrollEndPos > -160) ) {
						$fullSlider.data('scrolling', 'top'); // mark as active
						jQuery.scrollTo.window().stop(true);
						// Scroll to position
						$.scrollTo( contentStart, 455, {
							easing: 'easeOutBack', 
							onAfter: function() { 
								$.scrollTo( contentStart, 1); // make sure it hit the target
								setTimeout( function() { $fullSlider.data('scrolling', false); }, 135); // mark complete
							}
						});
						return false;
					}
				}
			}
		});

感谢您的帮助! 丹

【问题讨论】:

  • 要了解为什么得分如此之低,请参阅this page on what topics are appropriatethis page on how to format your question。 “我的网站坏了”对任何人都没有帮助。
  • 您是否检查了站点并查看了控制台错误?你会看到 go_pricing_styles.css 没有被加载
  • 啊...存在高度可疑的控制台错误。不错的收获。不知道为什么这不再起作用。让我调查!谢谢,sn3ll!
  • 德拉特。修复了所有这些问题,问题仍然存在。
  • 好的。根据支持论坛的说法,这个 WordPress 主题的其他用户也开始遇到同样的神秘问题。如果发现任何解决方案,我会通知您。

标签: javascript jquery html css wordpress


【解决方案1】:

“自定义滚动(滚动条)是一个可选设置。如果您认为它可能会导致您的网站出现问题,您可以从管理设置中将其关闭并返回浏览器的默认滚动。据我们所知(并且从成千上万的主题安装)Chrome 中的自定义滚动没有问题。如果有,您可以随时禁用它。”

我在您正在使用的主题的支持部分阅读了这个 cmets。 希望对您有所帮助。 谢谢

【讨论】:

  • 谢谢!根据您的建议,我尝试了此操作,但问题仍然存在。 :(
猜你喜欢
  • 2013-06-30
  • 2017-06-18
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多