Back

Building a Dynamic Avatar Component with Interactive Features

Learn how to create an engaging and interactive avatar component that enhances user profiles

Introduction

Welcome to the tutorial on building an interactive avatar component. Avatars play a crucial role in user profiles, and creating a dynamic avatar can greatly enhance the user experience.

HTML Structure

Let's start by defining the HTML structure. We'll have a container with an image tag for the avatar and an overlay for interactive features.

        <div class="avatar">
          <img src="https://randomuser.me/api/portraits/men/1.jpg" class="avatar-image" alt="User Avatar">
          <div class="avatar-overlay">
            <button onclick="rotateAvatar()" class="rotate-button">Rotate</button>
          </div>
        </div>
      

JavaScript Functionality

We'll implement a JavaScript function to rotate the avatar when the user clicks on the 'Rotate' button.

        let rotation = 0
        function rotateAvatar() {
          let avatar = document.getElementsByClassName('avatar-image')[0]
          rotation += 90
          avatar.style.transform = `rotate(${rotation}deg)`
        }
      

Styling with CSS

Next, let's add some styles to make our avatar component visually appealing. We'll position the avatar and overlay, style the button, and define the hover effects.

        .avatar {
          position: relative;
          display: inline-block;
        }
        .avatar-image {
          width: 100px;
          height: 100px;
          border-radius: 50%;
        }
        .avatar-overlay {
          position: absolute;
          bottom: 0;
          width: 100%;
          text-align: center;
        }
        .rotate-button {
          padding: 5px 10px;
          background-color: #02a8f4;
          color: #fff;
          border: none;
          border-radius: 5px;
          cursor: pointer;
        }
      

With these steps, you can create a dynamic avatar component that users can interact with. Experiment with different functionalities and designs to further enhance the user experience.

Whole code

<div class="avatar">
  <img src="https://randomuser.me/api/portraits/men/1.jpg" class="avatar-image" alt="User Avatar">
  <div class="avatar-overlay">
    <button onclick="rotateAvatar()" class="rotate-button">Rotate</button>
  </div>
</div>

<script>
let rotation = 0
function rotateAvatar() {
  let avatar = document.getElementsByClassName('avatar-image')[0]
  rotation += 90
  avatar.style.transform = `rotate(${rotation}deg)`
}
</script>

<style>
.avatar {
  position: relative;
  display: inline-block;
}
.avatar-image {
  width: 100px;
  height: 100px;
  border-radius: 50%;
}
.avatar-overlay {
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
}
.rotate-button {
  padding: 5px 10px;
  background-color: #02a8f4;
  color: #fff;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}
</style>
      
Thank you for reading this article.

Comments

More avatars

Similar

See also