improve scroll event