Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么代码不应用于页面中的每个元素_Javascript_Jquery - Fatal编程技术网

Javascript 为什么代码不应用于页面中的每个元素

Javascript 为什么代码不应用于页面中的每个元素,javascript,jquery,Javascript,Jquery,$(窗口)。滚动(函数(){ var scrollwin=$(window.scrollTop(); var windowWidth=$(window.width(); $('article')。每个(函数(i){ var articlehight=$('article')。outerHeight(true); 如果(scrollwin>=$(此).offset().top){ 如果(scrollwin您需要在循环中使用$(此),而不是$('article')——我做了以下替换: $(windo

$(窗口)。滚动(函数(){
var scrollwin=$(window.scrollTop();
var windowWidth=$(window.width();
$('article')。每个(函数(i){
var articlehight=$('article')。outerHeight(true);
如果(scrollwin>=$(此).offset().top){

如果(scrollwin您需要在循环中使用
$(此)
,而不是
$('article')
——我做了以下替换:

$(window).scroll( function() {
  $('article').each( function(i) {

    var scrollwin = $(window).scrollTop();
    var articleheight = $('article').outerHeight(true);
    var windowWidth = $(window).width();

    if(scrollwin >= $(this).offset().top)
    {
      if(scrollwin <= ($(this).offset().top + articleheight)){
        $('.progress').css('width', ((scrollwin - $(this).offset().top) /   articleheight) * 100 + "%"  );
      }
      else {
        $('.progress').css('width',"100%");
      }
    }
    else {
      $('.progress').css('width',"0px");
    }

  }); 
});
$(窗口)。滚动(函数(){
$('article')。每个(函数(i){
var scrollwin=$(window.scrollTop();
var articlehight=$('article')。outerHeight(true);
var windowWidth=$(window.width();
如果(scrollwin>=$(此).offset().top)
{

如果(scrollwin您需要在循环中使用
$(此)
,而不是
$('article')
——我做了以下替换:

$(window).scroll( function() {
  $('article').each( function(i) {

    var scrollwin = $(window).scrollTop();
    var articleheight = $('article').outerHeight(true);
    var windowWidth = $(window).width();

    if(scrollwin >= $(this).offset().top)
    {
      if(scrollwin <= ($(this).offset().top + articleheight)){
        $('.progress').css('width', ((scrollwin - $(this).offset().top) /   articleheight) * 100 + "%"  );
      }
      else {
        $('.progress').css('width',"100%");
      }
    }
    else {
      $('.progress').css('width',"0px");
    }

  }); 
});
$(窗口)。滚动(函数(){
$('article')。每个(函数(i){
var scrollwin=$(window.scrollTop();
var articlehight=$('article')。outerHeight(true);
var windowWidth=$(window.width();
如果(scrollwin>=$(此).offset().top)
{

if(scrollwin)你能添加你的HTML吗?它只在最后一个元素上起作用的原因是因为你做了
$('.progress').css('width','0px'))
在每个循环结束时,对于未显示的每个文章,这意味着即使文章#1在查看时正确设置了
.progress
宽度,当
.each()
-循环处理第二篇文章。这就是为什么它只在最后一篇文章中起作用,因为没有更多的循环迭代将其重置为0px。谢谢,从上面的代码段中删除了else语句以显示它起作用。请添加您的HTML!它只在最后一个元素上起作用的原因是因为您执行了
$('.progress').css('width',“0px”)
在每个循环的末尾显示未显示的文章,这意味着即使文章#1在查看时正确设置了
.progress
宽度,当
.each()
-循环处理第二篇文章。这就是为什么它只在最后一篇文章中起作用,因为没有更多的循环迭代将其重置为0px。谢谢,从上面的代码段中删除了else语句以显示它起作用。我想我已经试过了…,但在上面的代码中,它只在我滚动到最后一个元素时起作用(我可以看到它使上面的所有其他元素都起作用了)@Timbo我错过了替换一篇文章的引用。我对它进行了编辑以反映这一点。如果没有其他内容,请从我的答案中学习并编写代码,不要盲目复制代码,还要放置
var scrollwin=$(window.scrollTop();
var windowWidth=$(window.width())
之前。每个
都添加了一个代码片段,表明它只在最后一个元素上工作。我想我已经尝试过了…,但是在代码上方,它只在我滚动到最后一个元素时工作(我可以看到它使上面的所有其他元素都工作)@Timbo我错过了替换其中一篇文章的参考文献。我对其进行了编辑以反映这一点。如果没有其他内容,请从我的答案中学习并编写代码,不要盲目复制代码,还要放置
var scrollwin=$(window.scrollTop();
var windowWidth=$(window.width())
之前。每个
都添加了一个代码段,以显示它仅对最后一个元素有效