Правильно сказали - в this возвращается document. Т.е. надо выбирать созданный элемент как-то по другому, т.к. у insertAdjacentHTML нет callback функции, внутри которой this был бы равен элементу. И еще, чтобы показать элемент с FadeIn - он должен быть изначально скрытым.
Как вариант: