Javascript 尝试循环函数以在多个元素上运行-jQuery
我正试图让这个jQuery视差代码正常工作,但我不想把所有东西都弄成意大利面条。如何循环应用于多个元素ID 它不适用于类,因为函数需要针对每个特定的div运行多次-我在循环方面不是很好,仍然在学习如何做这件事 无论如何,这是一段带子div的div的函数代码,在本例中为about>pAbout:Javascript 尝试循环函数以在多个元素上运行-jQuery,javascript,jquery,css,Javascript,Jquery,Css,我正试图让这个jQuery视差代码正常工作,但我不想把所有东西都弄成意大利面条。如何循环应用于多个元素ID 它不适用于类,因为函数需要针对每个特定的div运行多次-我在循环方面不是很好,仍然在学习如何做这件事 无论如何,这是一段带子div的div的函数代码,在本例中为about>pAbout: $(document).ready(function() { if ($("#pAbout").length) { parallax(); } }); $(window).scroll(
$(document).ready(function() {
if ($("#pAbout").length) {
parallax();
}
});
$(window).scroll(function(e) {
if ($("#pAbout").length) {
parallax();
}
});
function parallax(){
if( $("#pAbout").length > 0 ) {
var plxBackground = $("#pAbout");
var plxWindow = $("#about");
var plxWindowTopToPageTop = $(plxWindow).offset().top;
var windowTopToPageTop = $(window).scrollTop();
var plxWindowTopToWindowTop = plxWindowTopToPageTop - windowTopToPageTop;
var plxBackgroundTopToPageTop = $(plxBackground).offset().top;
var windowInnerHeight = window.innerHeight;
var plxBackgroundTopToWindowTop = plxBackgroundTopToPageTop - windowTopToPageTop;
var plxBackgroundTopToWindowBottom = windowInnerHeight - plxBackgroundTopToWindowTop;
var plxSpeed = 0.35;
plxBackground.css('top', - (plxWindowTopToWindowTop * plxSpeed) + 'px');
}
}
我希望创建这样一个数组:
var ids = ['#pAbout', '#pConcept', '#pBroadcast', '#pDigital', '#pDesign', '#pContact'];
但我不能让电子商务正常运作,不幸的是,这让我很沮丧。任何帮助都将不胜感激 只需在选择器之间使用逗号,就可以在jQuery中使用多个选择器来选择不同的元素
$("#pAbout, #pConcept, #pBroadcast, #pDigital, #pDesign, #pContact")
.each(function(){
//manipulate element here
});
每个元素都迭代所有匹配的元素,因此无需检查长度等。请向我们展示您在循环中的尝试。太棒了,非常感谢-我明天就要尝试了,我会让你知道它是如何工作的。它似乎不是这样的-我正在使用它,所以每个函数中的所有内容都是自引用的。每个函数,我都不会从中得到任何回报。我相信这是因为它们都引用了函数名parallax-只是想知道我现在是否可以在每次迭代中进行更改..但是当我为每个函数名创建新的函数名时,spaghetti就很好了,所以我确定这就是问题所在。我会开始搜索。你一定要改变视差函数,使用变量引用,而不是特定的名称。在each function$中,它指的是当前匹配的元素。你能用它来工作吗?是的,我目前正在运行我的意大利面版本,而我完成了一些其他的事情,打算回到它,但实际上我在我的第一次尝试中使用了$this,但没有成功。函数名,parallax,是被引用的-我相信我必须让这个名字在每次迭代中都是唯一的-我将尝试谷歌,看看是否有一种方法可以在每次新迭代中动态地做到这一点。