The 23-year-old agreed the termination of his Rovers contract to move to Valley Parade on a free transfer, although the Championship club have also included a sell-on fee.
Bantams boss Phil Parkinson told the club’s official website: “We are delighted to have Josh on board.
“We have tracked his progress for some time and he enjoyed a good season in League One with Fleetwood Town last year.
“He got eight goals from midfield for Fleetwood last season, making him one of their top scorers, and he will add something extra to the squad. We look forward to working with him.”
Morris has also enjoyed loan spells with Rotherham, Carlisle and Yeovil.