JavaScript to achieve accordion effect

JavaScript to achieve accordion effect

This article shares the specific code for JavaScript to achieve the accordion effect for your reference. The specific content is as follows

Code:

<!DOCTYPE html>
<html lang="en">


<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
 <style>
  * {
   margin: 0;
   padding: 0;
  }
  
  ul {
   width: 100%;
   text-align: center;
  }
  
  ul li {
   list-style: none;
   overflow: hidden;
   display: inline-block;
   transition: all 1s;
  }
 </style>
</head>

<body>
 <ul>

 </ul>
 <script>
  var ul = document.querySelector("ul");
  var imgs = ["img/img4.jpg", "img/img5.jpg", "img/img6.jpg", "img/img7.jpg", "img/img8.jpg", "img/img9.jpg", ];
  for (var i = 0; i < imgs.length; i++) {
   var li = document.createElement("li");
   var img = document.createElement("img");
   img.src = imgs[i];
   li.appendChild(img);
   ul.appendChild(li);
  }
  var lis = document.querySelectorAll("li");
  window.onload = window.onresize = function() {
   for (var i = 0; i < lis.length; i++) {
    lis[i].style.width = (ul.offsetWidth / imgs.length) - 10 + "px";
   }
  }
  var imgM = document.querySelectorAll("img");
  for (let i = 0; i < imgM.length; i++) {
   imgM[i].onmouseenter = function() {
    for (var j = 0; j < imgM.length; j++) {
     lis[j].style.width = ((ul.offsetWidth - imgM[i].offsetWidth) / (imgs.length - 1)) - 10 + "px";
    }
    lis[i].style.width = imgM[i].offsetWidth + "px";
   }

   imgM[i].onmouseleave = function() {
    for (var i = 0; i < lis.length; i++) {
     lis[i].style.width = (ul.offsetWidth / imgs.length) - 10 + "px";
    }
   }
  }
 </script>
</body>

</html>

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Pure js to achieve accordion effect code
  • Accordion effect navigation menu made by native js
  • Use ReactJS to implement tab page switching, menu bar switching, accordion switching and progress bar effects
  • Vue.js accordion menu component development example
  • js to achieve a simple accordion effect
  • js realizes the effect of foldable and expandable accordion menu
  • Pure js to achieve accordion effect
  • Native JS to achieve vertical accordion effect
  • Cool js accordion effect
  • JS realizes the picture accordion effect

<<:  Nginx server https configuration method example

>>:  How to install MySQL 5.7.17 and set the encoding to utf8 in Windows

Recommend

Steps to install cuda10.1 on Ubuntu 20.04 (graphic tutorial)

Pre-installation preparation The main purpose of ...

Detailed steps to install Docker 1.8 on CentOS 7

Docker supports running on the following CentOS v...

Optimal web page width and its compatible implementation method

1. When designing a web page, determining the widt...

The front-end must know how to lazy load images (three methods)

Table of contents 1. What is lazy loading? 2. Imp...

Solution to the root password login problem in MySQL 5.7

After I found that the previous article solved th...

Use a few interview questions to look at the JavaScript execution mechanism

Table of contents Previous words Synchronous and ...

Explain MySQL's binlog log and how to use binlog log to recover data

As we all know, binlog logs are very important fo...

A quick review of CSS3 pseudo-class selectors

Preface If CSS is the basic skill of front-end de...

Solve the problem of insufficient docker disk space

After the server where Docker is located has been...

Alibaba Cloud Server Ubuntu Configuration Tutorial

Since Alibaba Cloud's import of custom Ubuntu...

Detailed explanation of MySQL Workbench usage tutorial

Table of contents (I) Using Workbench to operate ...

Detailed explanation of the seven data types in JavaScript

Table of contents Preface: Detailed introduction:...

How to configure ssh to log in to Linux using git bash

1. First, generate the public key and private key...