经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS3 » 查看文章
CSS3简易切割轮播图的实现代码_CSS教程_CSS
来源:jb51  时间:2020/12/14 17:00:39  对本文有异议

实现思路

  • 首先创建一个父容器,用两个无序列表通过弹性布局将父容器分为两栏。
  • 在li里面存放图片通过给左边的li {background: url('图片地址') no-repeat; background-size: 200% 100%;}给右边的li{background-position-x: -300(父容器宽度的一半)px;}来实现将图片分割成两栏。
  • 给ul{ransform-style: preserve-3d; }属性来开启浏览器的3D显示。
  • 用子绝父相来将li叠放到一起ul{position: relative;} li {position: absolute;}。
  • 通过transform属性来设置li的旋转。
  • 到这里可以添加.box:hover>ul { transition: all 5s;transform: rotateX(360deg); } 来看看效果。
  • 最后添加两个按钮来让用户可以自己切换图片。
  • 点击时只用改变ul的旋转角度
  1. btn1.onclick = ()=>{
  2. item++;
  3. let r = item * 90;
  4. letf.style.transform = 'rotateX(' + r + 'deg)';
  5. letf.style.transition = 'all 1s';
  6. right.style.transform = 'rotateX(' + r + 'deg)';
  7. right.style.transition = 'all 1s .3s';
  8. }
  9. btn2.onclick = ()=>{
  10. item--;
  11. let r = item * 90;
  12. letf.style.transform = 'rotateX(' + r + 'deg)';
  13. letf.style.transition = 'all 1s';
  14. right.style.transform = 'rotateX(' + r + 'deg)';
  15. right.style.transition = 'all 1s .3s';
  16. }

最后附上全部代码,希望对学习前端的你有所帮助

html代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>切割轮播图</title>
  7. </head>
  8. <body>
  9. <div class="box">
  10. <ul class="letf">
  11. <li></li>
  12. <li></li>
  13. <li></li>
  14. <li></li>
  15. </ul>
  16. <ul class="right">
  17. <li></li>
  18. <li></li>
  19. <li></li>
  20. <li></li>
  21. </ul>
  22. </div>
  23. <button id="btn1">上一页</button><button id="btn2">下一页</button>
  24. </body>
  25. </html>

css 代码

  1. *{
  2. margin: 0;
  3. padding: 0;
  4. }
  5. body{
  6. perspective: 800px;
  7. }
  8. .box{
  9. display: flex;
  10. width: 600px;
  11. height: 350px;
  12. margin: 150px auto;
  13. }
  14. .box:hover ul li:nth-child(1){
  15. transition: all 5s;
  16. transform: rotateX(360deg);
  17. }
  18. ul{
  19. flex: 1;
  20. list-style: none;
  21. padding: 0;
  22. margin: 0;
  23. transform-style: preserve-3d; /* 开启浏览器的3D显示 */
  24. position: relative;
  25. }
  26. li{
  27. width: 100%;
  28. height: 100%;
  29. position: absolute;
  30. }
  31. li:nth-child(1){
  32. background: url('../images/9.jpg') no-repeat;
  33. background-size: 200% 100%;
  34. transform: translateZ(175px);
  35.  
  36. }
  37. li:nth-child(2){
  38. background: url('../images/10.jpg') no-repeat;
  39. background-size: 200% 100%;
  40. transform: rotateX(90deg) translateZ(175px);
  41. }
  42. li:nth-child(3){
  43. background: url('../images/11.jpg') no-repeat;
  44. background-size: 200% 100%;
  45. transform: rotateX(180deg) translateZ(175px);
  46. }
  47. li:nth-child(4){
  48. background: url('../images/12.jpg') no-repeat;
  49. background-size: 200% 100%;
  50. transform: rotateX(-90deg) translateZ(175px);
  51. }
  52. .right li{
  53. background-position-x: -300px;
  54. }
  55.  

js代码

  1. let item = 0;
  2. let btn1 = document.getElementById('btn1');
  3. let btn2 = document.getElementById('btn2');
  4. let letf = document.querySelector('.letf');
  5. let right = document.querySelector('.right')
  6. btn1.onclick = ()=>{
  7. item++;
  8. let r = item * 90;
  9. letf.style.transform = 'rotateX(' + r + 'deg)';
  10. letf.style.transition = 'all 1s';
  11. right.style.transform = 'rotateX(' + r + 'deg)';
  12. right.style.transition = 'all 1s .3s';
  13. }
  14. btn2.onclick = ()=>{
  15. item--;
  16. let r = item * 90;
  17. letf.style.transform = 'rotateX(' + r + 'deg)';
  18. letf.style.transition = 'all 1s';
  19. right.style.transform = 'rotateX(' + r + 'deg)';
  20. right.style.transition = 'all 1s .3s';
  21. }

到此这篇关于CSS3简易切割轮播图的实现代码的文章就介绍到这了,更多相关CSS3切割轮播图内容请搜索w3xue以前的文章或继续浏览下面的相关文章,希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号