Hiding part of ListLinePlot

This is a hack may be as I do not see now a direct option to do this.

Combine the 2 list plots into one, using Epilog then use Show

red   = Table[{i*h,Sin[i*h]},{i,0,100}];
blue  = Table[{i*h,Cos[i*h]},{i,0,100}];
vLine = Graphics[{Black, Dashed, Line[{{Pi/2, -1}, {Pi/2, 1}}]}]; 
p     = ListLinePlot[blue[[1;;51]],
            PlotStyle->Blue, 
            PlotRange->{{0,3},Automatic}, 
            Epilog->First@ListLinePlot[red[[51;;-1]],PlotStyle->Red]];

moment=Show[{p,vLine},PlotRange->{{0,3},{-1,1}}]

Mathematica graphics


h = π / 100;
{d1, d2} = Table[{i h, #[i h]}, {i, 0, 100}] & /@ {Sin, Cos};
{ms1, ms2} = {{Opacity[0], Red}, {Blue, Opacity[0]}};
{i1, i2} = ListLinePlot[#[[1]], 
   PlotStyle -> Thick, 
   Mesh -> {{π/2}}, 
   MeshStyle -> None, 
   MeshShading -> #[[2]]] & /@ 
 {{d1, ms1}, {d2, ms2}};

Show[{i1, i2}, 
   GridLines -> {{{π / 2, Directive[Thick, Dashed]}}, None}, 
   PlotRange -> All]

enter image description here