CSS3 simple cutting carousel picture implementation code

CSS3 simple cutting carousel picture implementation code

Implementation ideas

  • First, create a parent container and use two unordered lists to divide the parent container into two columns through flexible layout.
  • When storing images in li, you can divide the images into two columns by giving the left li {background: url('image address') no-repeat; background-size: 200% 100%;} and the right li {background-position-x: -300 (half the width of the parent container) px;}.
  • Give ul the {ransform-style: preserve-3d; } attribute to enable the browser's 3D display.
  • Use child and parent to stack the li together ul{position: relative;} li {position: absolute;}.
  • Set the rotation of li through the transform property.
  • Here you can add .box:hover>ul { transition: all 5s;transform: rotateX(360deg); } to see the effect.
  • Finally, add two buttons to allow users to switch images themselves.
  • When clicking, just change the rotation angle of ul
  btn1.onclick = ()=>{
            item++;
            let r = item * 90;
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'all 1s';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'all 1s .3s';
        }
        btn2.onclick = ()=>{
            item--;
            let r = item * 90;
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'all 1s';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'all 1s .3s';
        }

Finally, attach all the codes, I hope it will be helpful for you to learn the front-end

HTML code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cut the carousel image</title>
</head>
<body>
    <div class="box">
        <ul class="letf">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul class="right">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <button id="btn1">Previous page</button><button id="btn2">Next page</button>
</body>
</html>

CSS Code

*{
    margin: 0;
    padding: 0;
}
body{
    perspective: 800px;
}
.box{
    display: flex;
    width: 600px;
    height: 350px;
    margin: 150px auto;
}
.box:hover ul li:nth-child(1){
    transition: all 5s;
    transform: rotateX(360deg);
}
ul{
    flex: 1;
    list-style: none;
    padding: 0;
    margin: 0;
    transform-style: preserve-3d; /* Enable 3D display in the browser*/
    position: relative;
}
li{
    width: 100%;
    height: 100%;
    position: absolute;
}
li:nth-child(1){
    background: url('../images/9.jpg') no-repeat;
    background-size: 200% 100%;
    transform: translateZ(175px);

}
li:nth-child(2){
    background: url('../images/10.jpg') no-repeat;
    background-size: 200% 100%;
    transform: rotateX(90deg) translateZ(175px);
}
li:nth-child(3){
    background: url('../images/11.jpg') no-repeat;
    background-size: 200% 100%;
    transform: rotateX(180deg) translateZ(175px);
}
li:nth-child(4){
    background: url('../images/12.jpg') no-repeat;
    background-size: 200% 100%;
    transform: rotateX(-90deg) translateZ(175px);
}
.right li{
    background-position-x: -300px;
}

js code

  let item = 0;
        let btn1 = document.getElementById('btn1');
        let btn2 = document.getElementById('btn2');
        let letf = document.querySelector('.letf');
        let right = document.querySelector('.right')
        btn1.onclick = ()=>{
            item++;
            let r = item * 90;
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'all 1s';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'all 1s .3s';
        }
        btn2.onclick = ()=>{
            item--;
            let r = item * 90;
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'all 1s';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'all 1s .3s';
        }

This is the end of this article about the implementation code of CSS3 simple cutting carousel. For more relevant CSS3 cutting carousel content, please search 123WORDPRESS.COM’s previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

<<:  Implementation of Vue top tags browsing history

>>:  Several common methods for passing additional parameters when submitting a form

Recommend

React Fiber structure creation steps

Table of contents React Fiber Creation 1. Before ...

Analyze how a SQL query statement is executed in MySQL

Table of contents 1. Overview of MySQL Logical Ar...

Ubuntu 20.04 firewall settings simple tutorial (novice)

Preface In today's increasingly convenient In...

Summary of MySQL string interception related functions

This article introduces MySQL string interception...

How to enter and exit the Docker container

1 Start the Docker service First you need to know...

js implements the pop-up login box by clicking the pop-up window

This article shares the specific code of js to re...

How to implement Mysql scheduled tasks under Linux

Assumption: The stored procedure is executed ever...

XHTML introductory tutorial: Application of table tags

<br />Table is an awkward tag in XHTML, so y...

Solve the problem that ElementUI custom CSS style does not take effect

For example, there is an input box <el-input r...

Two ways to introduce svg icons in Vue

How to introduce svg icons in Vue Method 1 of int...

CSS3 filter code to achieve gray or black mode on web pages

front end css3,filter can not only achieve the gr...