我正在将HTML主页转换为WordPress格式,我不知道如何处理索引中包含的Javascript。html主页(与单独文件中的JS相反)。要了解我在说什么,请查看http://tstand.com - 脚本从第89行开始,到第239行结束。
我的直觉是将此脚本移动到一个单独的Javascript文件(我将其命名为menuscroll.js),然后通过函数将其排队。php,就像我处理与该页面关联的所有其他样式表和Javascript文件一样,如下所示。
function wpse_enqueue_page_template_styles() {
if ( is_page_template( \'page-2820.php\' ) ) {
wp_enqueue_style( \'main\', get_template_directory_uri() . \'/assets/css/main.css\' );
wp_enqueue_style( \'animate\', get_template_directory_uri() . \'/assets/css/animate.css\' );
wp_enqueue_style( \'animate-min\', get_template_directory_uri() . \'/assets/animate.min.css\' );
wp_enqueue_style( \'component\', get_template_directory_uri() . \'/assets/css/component.css\' );
}
}
add_action( \'wp_enqueue_scripts\', \'wpse_enqueue_page_template_styles\' );
add_action(\'wp_enqueue_scripts\',\'Load_Template_Scripts_wpa83855\');
function Load_Template_Scripts_wpa83855(){
if ( is_page_template(\'page-2820.php\') ) {
wp_enqueue_script( \'default\', \'//use.edgefonts.net/source-sans-pro:i6,n6,n4,i4,i3,n3,n7,i7:default.js\');
wp_register_script( \'menuscroll\', get_template_directory_uri() . \'/assets/js/menuscroll.js\');
wp_enqueue_script( \'menuscroll.js\', get_template_directory_uri() . \'/assets/js/menuscroll.js\');
}
}
我创建的自定义模板是第2820页。php。一个在线资源让我相信,我应该在排队前注册它,但仍然没有成功。所有其他CSS/JS文件似乎都工作正常。
以下是menuscroll的内容。js公司
// JS for showing features titles
$(function(){
$("#i1").hover(function(){
$(\'#desc-i1\').fadeIn();
}, function() {
$(\'#desc-i1\').fadeOut(100);
});
$("#i2").hover(function(){
$(\'#desc-i2\').fadeIn();
}, function() {
$(\'#desc-i2\').fadeOut(100);
});
$("#i3").hover(function(){
$(\'#desc-i3\').fadeIn();
}, function() {
$(\'#desc-i3\').fadeOut(100);
});
$("#i4").hover(function(){
$(\'#desc-i4\').fadeIn();
}, function() {
$(\'#desc-i4\').fadeOut(100);
});
$("#i5").hover(function(){
$(\'#desc-i5\').fadeIn();
}, function() {
$(\'#desc-i5\').fadeOut(100);
});
$("#i6").hover(function(){
$(\'#desc-i6\').fadeIn();
}, function() {
$(\'#desc-i6\').fadeOut(100);
});
$("#i7").hover(function(){
$(\'#desc-i7\').fadeIn();
}, function() {
$(\'#desc-i7\').fadeOut(100);
});
});
var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ? true : false;
jQuery(document).ready(function($){
if(!isMobile) {
$(window).scroll(function(){
if ($(this).scrollTop() < $(\'#s4\').offset().top-50) {
$(\'#features-area\').removeClass(\'fadeIn\')
$(\'#features-area\').addClass(\'fadeOut\')
}
if ($(this).scrollTop() >= $(\'#s4\').offset().top-50) {
$(\'#features-area\').addClass(\'fadeIn\')
$(\'#features-area\').removeClass(\'fadeOut\')
}
<!--#s3 text fade in fade/ out -->
if ($(this).scrollTop() < $(\'#s3\').offset().top-350) {
$(\'#s3-left\').removeClass(\'fadeInLeft\')
$(\'#s3-left\').addClass(\'fadeOutLeft\')
}
if ($(this).scrollTop() >= $(\'#s3\').offset().top-350) {
$(\'#s3-left\').addClass(\'fadeInLeft\')
$(\'#s3-left\').removeClass(\'fadeOutLeft\')
}
});
}
});
如果有人能指出我做错了什么,我将不胜感激。
非常感谢!:)
编辑:从排队脚本中删除了Jquery和Jquery ui,添加了菜单滚动的内容。js公司
SO网友:Caspar
您可以注册脚本,然后将其排队(上面就是这样做的),也可以简单地一次将其全部排队。不管怎样,如果您的脚本需要jQuery,您应该在注册时将其指定为依赖项,这样WordPress就会知道如何为您自动加载它。
因此,要么:
wp_register_script( \'menuscroll\', get_template_directory_uri() . \'/assets/js/menuscroll.js\', array( \'jquery\' ), false, true );
wp_enqueue_script( \'menuscroll\' );
(请注意,register和enqueue函数的“handle”参数必须匹配。数组告诉WordPress您需要jquery;false表示没有特殊的脚本版本,true表示在页面底部加载。)
或者一气呵成,就像这样:
wp_enqueue_script( \'menuscroll\', get_template_directory_uri() . \'/assets/js/menuscroll.js\', array( \'jquery\' ), false, true );
应该这样做。