Javascript 在垂直滚动上水平移动div中的元素

Javascript 在垂直滚动上水平移动div中的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想知道,当用户在div内垂直滚动时,是否可以将div中的元素(如图像)移动为严格的水平移动?我可以想象有一个javascript解决方案,但我不知道会是什么。在垂直滚动上进行水平移动的一种方法是到容器。首先,将容器逆时针旋转90度,然后将容器内的子容器顺时针旋转90度 这样,垂直滚动的容器实际上会相对于页面水平移动,而其中的元素会相对于容器向下移动 :-webkit滚动条{宽度:2px;高度:2px;} :-webkit滚动条按钮{宽度:2px;高度:2px;} div{ 框大小:边框框;

我想知道,当用户在div内垂直滚动时,是否可以将div中的元素(如图像)移动为严格的水平移动?我可以想象有一个javascript解决方案,但我不知道会是什么。

在垂直滚动上进行水平移动的一种方法是到容器。首先,将容器逆时针旋转90度,然后将容器内的子容器顺时针旋转90度

这样,垂直滚动的容器实际上会相对于页面水平移动,而其中的元素会相对于容器向下移动

:-webkit滚动条{宽度:2px;高度:2px;} :-webkit滚动条按钮{宽度:2px;高度:2px;} div{ 框大小:边框框; } 身体{ 背景:111人; } .水平滚动包装器{ 位置:绝对位置; 显示:块; 排名:0; 左:0; 宽度:80px; 最大高度:500px; 保证金:0; 背景:abc; 溢出y:自动; 溢出x:隐藏; 变换:旋转-90度平移Y-80px; 变换原点:右上角; } .水平滚动包装器>div{ 显示:块; 填充物:5px; 背景:cab; 变换:旋转90度; 变换原点:右上角; } .正方形{ 填充:60px0; } 分区>正方形{ 宽度:60px; 高度:60px; 利润率:10px; } 项目1 项目2 项目3 项目4 项目5 项目6 项目7 项目8 项目9 项目10 项目11 项目12 项目13 项目14 项目15 项目16
在垂直卷轴上进行水平移动的一种方法是移动到容器上。首先,将容器逆时针旋转90度,然后将容器内的子容器顺时针旋转90度

这样,垂直滚动的容器实际上会相对于页面水平移动,而其中的元素会相对于容器向下移动

:-webkit滚动条{宽度:2px;高度:2px;} :-webkit滚动条按钮{宽度:2px;高度:2px;} div{ 框大小:边框框; } 身体{ 背景:111人; } .水平滚动包装器{ 位置:绝对位置; 显示:块; 排名:0; 左:0; 宽度:80px; 最大高度:500px; 保证金:0; 背景:abc; 溢出y:自动; 溢出x:隐藏; 变换:旋转-90度平移Y-80px; 变换原点:右上角; } .水平滚动包装器>div{ 显示:块; 填充物:5px; 背景:cab; 变换:旋转90度; 变换原点:右上角; } .正方形{ 填充:60px0; } .squares>div{ 宽度:60px; 高度:60px; 利润率:10px; } 项目1 项目2 项目3 项目4 项目5 项目6 项目7 项目8 项目9 项目10 项目11 项目12 项目13 项目14 项目15 项目16
这将在IMG元素上水平滚动。当您离开onmouseout事件时,它将允许您在正文中正常滚动,直到您将鼠标悬停在水平内容上。如果这有帮助,标记为答案。查看此演示:以下是代码:

.救命{ 宽度:300px;边距:0自动;填充:20px;位置:相对; 高度:200px;背景:番茄;边框:2px纯绿色;最小宽度:300px; } 容器{ 高度:300px;宽度:400px;溢出-x:滚动; 显示:柔性;柔性方向:行;溢出-y:隐藏; } .停止滚动{ 身高:100%; 溢出:隐藏; } 形象 要素 视频 文本 document.getElementByIdcontainer.addEventListenerwheel,myFunction; var i=0; 函数stopTheScroll{ $'body'。删除类'stop-scrolling'; } 函数myFunctione{ //防止正文滚动 $'body'.addClass'stop-scrolling'; //检查位置是否大于/小于最大值 //您的内容的宽度,并防止滚动积累。 ifi<0{ i=0; 回来 } 否则,如果我>1350{ i=1350; 回来 } //按所需的w.e速度滚动。 e、 车轮三角洲>0?i-=50:i+=50; $container.scrollLefti; }
这将在IMG元素上水平滚动。当您离开onmouseout事件时,它将允许您在正文中正常滚动,直到您将鼠标悬停在水平内容上。如果这有帮助,标记为答案。查看此演示:以下是代码:

帮助 { 宽度:300px;边距:0自动;填充:20px;位置:相对; 高度:200px;背景:番茄;边框:2px纯绿色;最小宽度:300px; } 容器{ 高度:300px;宽度:400px;溢出-x:滚动; 显示:柔性;柔性方向:行;溢出-y:隐藏; } .停止滚动{ 身高:100%; 溢出:隐藏; } 形象 要素 视频 文本 document.getElementByIdcontainer.addEventListenerwheel,myFunction; var i=0; 函数stopTheScroll{ $'body'。删除类'stop-scrolling'; } 函数myFunctione{ //防止正文滚动 $'body'.addClass'stop-scrolling'; //检查位置是否大于/小于最大值 //您的内容的宽度,并防止滚动积累。 ifi<0{ i=0; 回来 } 否则,如果我>1350{ i=1350; 回来 } //按所需的w.e速度滚动。 e、 车轮三角洲>0?i-=50:i+=50; $container.scrollLefti; }
您的代码中似乎有一个bug。滚动时,如果我到达div的某一端并继续朝该方向滚动,然后翻转滚动方向,则div需要一段时间才能朝另一个方向移动。你能解决它吗?“这真的会有帮助的。”阿洛辛格说,这是容器宽度的BC。它工作得很好。您只需知道宽度,就可以让jquery为您获取宽度,这样您甚至不必知道。您的代码中似乎有一个bug。滚动时,如果我到达div的某一端并继续朝该方向滚动,然后翻转滚动方向,则div需要一段时间才能朝另一个方向移动。你能解决它吗?“这真的会有帮助的。”阿洛辛格说,这是容器宽度的BC。它工作得很好。您只需知道宽度,就可以让jquery为您获取宽度,这样您甚至不必知道。