Для перспективы используй transform в css (погугли, там достаточно много, так сходу не объяснить). А для движения: создай псевдоклассы и поочерёдно активируй их через setInterval в JS.
id уникален и повторятся не должен. Для этого существует class, используется точно также, но может повторятся, а вместо "#" пишется точка - ".". То есть код приобретёт такой вид:
Конечно, можно. Это называется динамическое обновление страницы. Поищите по разным учебникам и форумам на эту тему, потому что она достаточно обширная, и конкретное решение дать сложно. Могу сказать, что весь этот процесс выполняется на JS, а самая сложная задача в данном вопросе - создание ложной записи в истории браузера, её, конечно, можно решить, сделав на своём сайте собственную кнопку "назад", но она должна быть безумно удобна. Если неплоха разбираетесь в таких делишках, можете попытаться разобраться в коде ВКонтакте, потому что у них такая идея достаточно давно реализована и работает бесподобно