首页 > 其他分享 >js+css 父div,里面有很多子div,当子div在父div中放不下时候,自动滚动子div,向左横向滚动,循环展示子div信息

js+css 父div,里面有很多子div,当子div在父div中放不下时候,自动滚动子div,向左横向滚动,循环展示子div信息

时间:2024-02-02 11:24:22浏览次数:27  
标签:滚动 childContainer 当子 parentDiv totalWidth var div document

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <style>         #parentDiv {             width: 300px;             overflow: hidden;             white-space: nowrap;         }
        #childContainer {             display: inline-block;         }
        .childDiv {             width: 100px;             height: 100px;             background-color: #3498db;             margin-right: 10px;             display: inline-block;         }     </style> </head> <body>     <div id="parentDiv">         <div id="childContainer">             <div class="childDiv">1</div>             <div class="childDiv">2</div>             <div class="childDiv">3</div>             <div class="childDiv">4</div>             <div class="childDiv">5</div>             <!-- 添加更多子div根据需要 -->         </div>     </div>
    <script>         document.addEventListener('DOMContentLoaded', function () {             var parentDiv = document.getElementById('parentDiv');             var childContainer = document.getElementById('childContainer');
            var childWidth = document.querySelector('.childDiv').offsetWidth;             var totalWidth = childWidth * document.querySelectorAll('.childDiv').length;
            // 判断子div总宽度是否超过父div宽度             if (totalWidth > parentDiv.offsetWidth) {                 // 设置子div容器宽度,确保子div在一行显示                 childContainer.style.width = totalWidth + 'px';
                // 将滚动的动画时长设置为总宽度除以100,确保速度适中                 var animationDuration = totalWidth / 100;                 document.styleSheets[0].insertRule('@keyframes scrollAnimation { 0% { transform: translateX(0); } 100% { transform: translateX(-' + totalWidth + 'px); } }', 0);                 document.styleSheets[0].insertRule('#childContainer { animation: scrollAnimation ' + animationDuration + 's linear infinite; }', 1);
                // 鼠标悬停和离开事件处理                 parentDiv.addEventListener('mouseover', function () {                     childContainer.style.animationPlayState = 'paused';                 });
                parentDiv.addEventListener('mouseout', function () {                     childContainer.style.animationPlayState = 'running';                 });             }         });     </script> </body> </html>

标签:滚动,childContainer,当子,parentDiv,totalWidth,var,div,document
From: https://www.cnblogs.com/gaosj20210301/p/18002827

相关文章

  • Flex布局,和position布局,实现上下固定中间部分滚动
    Flex布局实现上下固定中间部分滚动:<divclass="parent"><divclass="header">header--固定</div><divclass="content"><p>content--滚动</p><p>内容部分</p><p>内容部分<......
  • Codeforces Round 922 (Div. 2)
    CodeforcesRound922(Div.2)ps:25分钟AB都over,C给我打破防了、、、讨厌异或、、、我一直以为是数学结果、、、只能说一怒之下怒了一下A.BrickWall想法:要使得稳定性高,那么就多用1*2的砖块就行(A题可以直接找规律,通过样例)#include<bits/stdc++.h>usingnamespacestd;......
  • Codeforces Round 922 (Div. 2) 赛后总结
    自豪的是D题做出来了,悲哀的是B题没能做出来C题的绝对值最小D题,DP存不下状态就把状态放进所求值中比赛快结束的时候,我想,这个B题,它但凡需要我通过归并排序或者树状数组求逆序对,不比C题进制转化要难?于是我就猜了一个结论结论是对的,但不幸的是,我编程实现的时候出错了考虑怎样证......
  • Codeforces Round 770 (Div. 2)(数学异或奇偶性)
    B.FortuneTelling拿到题目看数据范围之后就知道暴力显然是来不及的。那么只能找性质。\(考虑x和x+3的不同\quad奇偶性不同\)\(然后考虑两种操作对于一个数的奇偶性的影响\)\(加法:同奇偶则运算结果是偶,不同则运算结果为奇\)\(异或:惊奇的发现异或也是这样的\)这样我们就......
  • Codeforces Round 922 (Div. 2)
    基本情况A题当时做完提交一直编译错误后面发现是语言选择错误,浪费了五六分钟,然后去做B没想到去看C看了样例感觉可以做,结果干了好久都没出来,倒回去看B还是没做出来,感觉全程很紧张不知道为什么,脚一直在抖。A.BrickWall没啥好说的,就是全部放竖直的,实在不能放了再放横的而且把横......
  • Codeforces Round 921 (Div. 1)
    Preface被折纸狠狠地腐乳了,但好在手速够快光速写完前两题成功把Ohara_Rinne这个号也打上橙了之后就不开其它小号打了,也差不多该尝试去向上挑战了,不然一直呆在舒适圈内也没啥提升的说A.DidWeGetEverythingCovered?直接把序列自动机建出来,不妨设状态\((x,y)\)表示构造了长......
  • [office] excel表格锁定单元格不滚动的设置方法
    excel表格锁定单元格不滚动的设置方法1.打开需要修改的表格,在表格主页面中找到上方视图选项,点击该选项进入视图页面。2.在视图页面中找到冻结窗格选项,点击该选项进入至冻结窗格页面中。3.在冻结窗格页面中找到冻结首行选项即可固定该表格中的首行单元格。4.在冻结窗格页面中找到冻......
  • 垂直滚动条挤占子元素宽度的解决方法
    html如下所示:假设子元素的高度超过的父元素的自定义高度,那么父元素会出现垂直滚动条,但是这里的垂直滚动条会占用子元素的原本的宽度空间,导致子元素内部的元素排列混乱,解决这个问题的方法:.father{ overflow-y:overlay;}这样就可以了,简单吧,正因为简单,所以要记录下来,防止以后......
  • Codeforces Round 922 (Div. 2)
    CodeforcesRound922(Div.2)比赛链接A.BrickWall思路简单的模拟,要想实现最高的稳定性,就横着放就可以了,因为长度必须大于等于2,所以最后即使不能被2整除,也可以算在里面Code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){ intn,......
  • Codeforces Round 922 (Div.2)
    题目链接点这里CF1918ABrickWallvoidsolve(){lln,m;cin>>n>>m;cout<<n*(m/2)<<endl;}CF1918BMinimizeInversions注意到,当其中一个排列有序时,总的逆序对数量最少()今天找个时间补上证明对于任意一对\(i,j\)位置,其可能的逆序对总......