javascript - 使用鼠标滚动从右到左滚动vertical-rl div
问题描述
这里我做了一个vertical-rl
环境;
(function() {
function scrollHorizontally(e) {
e = window.event || e;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
document.documentElement.scrollLeft -= (delta * 50);
document.body.scrollLeft -= (delta * 50);
e.preventDefault();
}
if (window.addEventListener) {
window.addEventListener("mousewheel", scrollHorizontally, false);
window.addEventListener("DOMMouseScroll", scrollHorizontally, false);
} else {
window.attachEvent("onmousewheel", scrollHorizontally);
}
})();
#body {
height: 80%;
min-width: 100%;
writing-mode: vertical-rl;
font-size: 3.0rem;
}
<div id="body">
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>16</p>
<p>17</p>
<p>18</p>
<p>19</p>
<p>20</p>
<p>21</p>
<p>22</p>
</div>
javascript 通过使用鼠标滚轮向下滚动,可以使垂直主体从左向右滚动。
但由于这是一个垂直rl环境,我如何编辑脚本以滚动到另一个方向;从右到左?我已尽力编辑脚本,但无法完全弄清楚如何编辑。
编辑:尝试在整页上打开片段。
解决方案
如果 html 正文本身是dir="rtl"
,则滚动应以相反的方向进行。因此,将 body 设置为dir="rtl"
并制作一个 div 为writing-mode: vertical-rl;
and dir="ltr
。并将脚本的两个更改(delta * 50)
为(delta * -50)
.
(function() {
function scrollHorizontally(e) {
e = window.event || e;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
document.documentElement.scrollLeft -= (delta * -50);
document.body.scrollLeft -= (delta * -50);
e.preventDefault();
}
if (window.addEventListener) {
window.addEventListener("mousewheel", scrollHorizontally, false);
window.addEventListener("DOMMouseScroll", scrollHorizontally, false);
} else {
window.attachEvent("onmousewheel", scrollHorizontally);
}
})();
<body dir="rtl">
<div style="writing-mode: vertical-rl;" dir="ltr">
<p>月亮代表我的心</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
</div>
</body>
推荐阅读
- swift - TableView 中的 Skeleton View 使用
- html - 如何从两侧在 div 中创建箭头?
- android - 在android中收到广播时如何调用API
- marklogic - MLCP 导出:是否可以更改由 mlcp 导出创建的 zip 文件的名称
- android - Kotlin:一次构建一个类并在任何地方访问它
- java - 如何使用 java 将 100 MB 文件上传到共享点?
- java - 如何使用 Selenium 和 Java 从网络选项卡中的 DOM 结构中捕获授权承载令牌
- c# - 如何彻底销毁arrayPool
- java - 获取位图变量的 URI
- rust - Rocket CORS 如何使用 Request Guard 返回字符串?