在加载所有脚本后如何运行事件?我的意思是:
$('body').attr('onload', 'Scrollbar()');
我仅在加载所有脚本后才尝试运行此事件
<body onload="Scrollbar()">
我的脚本像这样在文档底部的 / body 标记之前
<script src="/js/scripts.js"></script>
</body>
我尝试了更多,对我也不起作用
$(document).ready(function() { ... });
$(window).on('load', function() { ... });
可以这样做吗?
编辑
Scrollbar()函数:
function Scrollbar(){new SmoothScroll(document,65,15)}function SmoothScroll(o,n,t){o==document&&(o=document.documentElement||document.body.parentNode||document.body);var i=!1,a=o.scrollTop;function e(e){e.preventDefault();var t=e.delta||e.wheelDelta;void 0===t&&(t=-e.detail),t=Math.max(-1,Math.min(1,t)),a+=-t*n,a=Math.max(0,Math.min(a,o.scrollHeight-o.clientHeight+15)),i||m()}function m(){i=!0;var e=(a-o.scrollTop)/t;o.scrollTop+=e,.0<Math.abs(e)?d(m):i=!1}o.addEventListener("mousewheel",e,!1),o.addEventListener("DOMMouseScroll",e,!1);var d=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,20)}}
答案 0 :(得分:0)
您当前的代码无效:
$(window).on('load', function() {
$('body').attr('onload', 'Scrollbar()');
});
您要在整个页面加载后向正文中添加一个onload
属性,因此由于已经触发了正文onload
,因此该属性将不起作用...
要解决此问题,请使用以下代码:
$(window).on('load', function() {
Scrollbar();
});
它在页面加载后立即执行Scrollbar()
。 $(document).ready()
也应该做得很好。