Interactive Social Media Buttons with CSS and JS
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive Social Media Buttons</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/boxicons@2.0.5/css/boxicons.min.css">
</head>
<body>
<div class="con-social-btns">
<button>
<i class='bx bxl-instagram-alt' ></i>
<div class="bg"></div>
</button>
<button>
<i class='bx bxl-twitter' ></i>
<div class="bg"></div>
</button>
<button>
<i class='bx bxl-github' ></i>
<div class="bg"></div>
</button>
<button>
<i class='bx bxl-discord' ></i>
<div class="bg"></div>
</button>
<button>
<i class='bx bxl-codepen' ></i>
<div class="bg"></div>
</button>
</div>
</body>
</html>
body {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
background: #F1F3F6;
}
* {
list-style: none;
outline: none;
padding: 0;
margin: 0;
font-family: 'Open Sans', sans-serif;
}
.con-social-btns {
display: flex;
align-items: center;
justify-content: center;
}
button {
width: 150px;
height: 150px;
display: flex;
align-items: center;
justify-content: center;
border: 0px;
color: #fff;
cursor: pointer;
background: transparent;
position: relative;
transition: all .25s ease;
/* margin-left: -12px;
margin-right: -12px; */
}
button:active {
transform: scale(.85);
}
.bg {
position: absolute;
width: 60px;
background: rgb(65, 53, 214);
height: 60px;
border-radius: 25px;
pointer-events: none;
box-shadow: 0px 8px 35px 0px rgba(65, 53, 214, .25);
}
button i {
pointer-events: none;
font-size: 1.8rem;
z-index: 10;
position: relative;
}
const btns = document.querySelectorAll('.con-social-btns button')
btns.forEach((item) => {
item.addEventListener('mousemove', (evt) => {
const x = evt.layerX - 60
const y = evt.layerY - 60
const bg = evt.target.querySelector('.bg')
const i = evt.target.querySelector('i.bx')
bg.style.transform = `translate(${x / 8}px, ${y / 8}px)`
i.style.transform = `translate(${x / 4}px, ${y / 4}px)`
})
item.addEventListener('mouseenter', (evt) => {
const bg = evt.target.querySelector('.bg')
const i = evt.target.querySelector('i.bx')
bg.style.transition = 'all .15s ease'
i.style.transition = 'all .15s ease'
setTimeout(() => {
bg.style.transition = ''
i.style.transition = ''
}, 150);
})
item.addEventListener('mouseleave', (evt) => {
const bg = evt.target.querySelector('.bg')
const i = evt.target.querySelector('i.bx')
bg.style.transition = 'all .25s ease'
i.style.transition = 'all .25s ease'
bg.style.transform = `translate(${0}px, ${0}px)`
i.style.transform = `translate(${0}px, ${0}px)`
setTimeout(() => {
bg.style.transition = ''
i.style.transition = ''
}, 250);
})
})
This snippet creates a row of interactive social media buttons using CSS and JavaScript. The buttons are designed to be visually appealing and responsive, with subtle animations on hover. When clicked, the buttons will open the corresponding social media profile or website in a new tab.
Key Features:
- Responsive Design: The buttons adapt seamlessly to different screen sizes, ensuring a consistent user experience across devices.
- Customizable Styling: Easily modify the appearance of the buttons using CSS to match your website's design and branding.
- Interactive Hover Effects: The buttons feature subtle animations on hover, providing visual feedback to the user.
- Clickable Links: Each button is linked to the corresponding social media profile or website, allowing users to easily access your online presence.
Implementation:
- Create the HTML Structure: Set up the basic HTML structure for the social media buttons, including the container and individual button elements.
- Apply CSS Styles: Use CSS to style the buttons, including their background color, border, font size, and hover effects. You can also customize the icons used for each social media platform.
- Add JavaScript Functionality: Implement JavaScript code to handle the click events for each button, opening the corresponding link in a new tab. You can use event listeners and the window.open() function to achieve this.
Join Our Community Call-to-Action Banner Section With Tailwind CSS
Bootstrap 5 Responsive Service Pricing Table Block
Owl Carousel Responsive CSS-Only Team Section Showcase
Tailwind CSS Subscribe Container with Integrated Footer
Responsive Bootstrap 5 Detailed Features Section
Responsive CSS-Only Glassmorphism Login Form with background image
Responsive Tailwind CSS Hero Section and Adaptive Navbar
Responsive Bootstrap 5 Compact FAQ Accordion Display
Responsive CSS Only Services Section with Hover Effects
Responsive Tailwind CSS Team Members Display Showcase
Responsive Bootstrap 5 Clear Process Flow Component
Responsive Interactive Login & Register Form with CSS & JS Transitions
Building Blocks for Your Web Pages
Explore a collection of pre-written HTML,CSS and Javascript
snippets to jumpstart your web development projects.