Для правильного вопроса надо знать половину ответа
Note: The attr() function can be used with any CSS property, but support for properties other than content is experimental, and support for the type-or-unit parameter is sparse.
Для правильного вопроса надо знать половину ответа
Потому что вы написали "элемент с классом .smile, являющийся потомком элемента image с псевдослассом hover".
А надо написать "элемент с классом .smile, следующий за элементом image с псевдослассом hover".
Для правильного вопроса надо знать половину ответа
Вангую, что reader у вас - глобальная переменная с инстансом FileReader.
И вы каждым вызовом reader.addEventListener навешиваете на неё ещё один обработчик события 'load'.
В результате все навешенные обработчики срабатывают на загрузку каждого следующего файла.