如何在拖入 javascript 时更改自动滚动 "start zone"?
How to change the auto scroll "start zone" while dragging in javascript?
我为我的学生做了一个项目,他们必须将单词拖放到正确的框中。不幸的是,问题太多了,所以学生需要滚动才能访问底部的问题。
我的问题如下:将鼠标拖动并移动到页面底部以滚动的任务确实不是最佳选择。页面开始滚动的区域小得离谱,所以我想办法让它变大(或者当拖动到页面的 2/3 时触发滚动)。
我在javascript和css方面不是很擅长,所以请帮助我。
这是我为你做的。我希望我正确理解了任务。
抓取一个词,然后将其放入橙色框中。将夹子放入方框后,您可以重新排列单词。
必须在wordsList
变量中输入您要使用的字词
(在代码中我用注释标记了滚动到您需要的元素 ID 的行)
我希望我对您有所帮助,children您教的是享受您想要给他们带来惊喜的东西
var wordsList = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'omnis', 'laudantium', 'illo', 'ducimus', 'ipsam', 'eaque', 'quia', 'sequi', 'dicta', 'accusamus', 'ad', 'facilis', 'nam', 'corrupti', 'reiciendis', 'labore', 'aliquam', 'Autem', 'sunt', 'consequuntur', 'officia', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'omnis', 'laudantium', 'illo', 'ducimus', 'ipsam', 'eaque', 'quia', 'sequi', 'ad', 'facilis', 'nam', 'corrupti', 'reiciendis', 'labore', 'aliquam!', 'Autem', 'sunt', 'consequuntur', 'officia'];
var x = document.getElementById('words-wrap');
for (var i = 0; i < wordsList.length; i++) {
x.innerHTML += '<span class="myword" id=w' + i + ' draggable="true" ondragstart="drag(event)">' + wordsList[i] + '</span>';
}
/////////////////
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
document.location = '#stage' // <--- Scrolling to element '#stage'
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
.myword {
display: inline-block;
margin: 5px;
cursor: move;
cursor: grab;
cursor: -moz-grab;
cursor: -webkit-grab;
}
#stage {
border: 10px solid orange;
min-height: 100px;
}
<div id="words-wrap">
</div>
<div id="stage" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
我为我的学生做了一个项目,他们必须将单词拖放到正确的框中。不幸的是,问题太多了,所以学生需要滚动才能访问底部的问题。 我的问题如下:将鼠标拖动并移动到页面底部以滚动的任务确实不是最佳选择。页面开始滚动的区域小得离谱,所以我想办法让它变大(或者当拖动到页面的 2/3 时触发滚动)。
我在javascript和css方面不是很擅长,所以请帮助我。
这是我为你做的。我希望我正确理解了任务。
抓取一个词,然后将其放入橙色框中。将夹子放入方框后,您可以重新排列单词。
必须在wordsList
变量中输入您要使用的字词
(在代码中我用注释标记了滚动到您需要的元素 ID 的行)
我希望我对您有所帮助,children您教的是享受您想要给他们带来惊喜的东西
var wordsList = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'omnis', 'laudantium', 'illo', 'ducimus', 'ipsam', 'eaque', 'quia', 'sequi', 'dicta', 'accusamus', 'ad', 'facilis', 'nam', 'corrupti', 'reiciendis', 'labore', 'aliquam', 'Autem', 'sunt', 'consequuntur', 'officia', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'omnis', 'laudantium', 'illo', 'ducimus', 'ipsam', 'eaque', 'quia', 'sequi', 'ad', 'facilis', 'nam', 'corrupti', 'reiciendis', 'labore', 'aliquam!', 'Autem', 'sunt', 'consequuntur', 'officia'];
var x = document.getElementById('words-wrap');
for (var i = 0; i < wordsList.length; i++) {
x.innerHTML += '<span class="myword" id=w' + i + ' draggable="true" ondragstart="drag(event)">' + wordsList[i] + '</span>';
}
/////////////////
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
document.location = '#stage' // <--- Scrolling to element '#stage'
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
.myword {
display: inline-block;
margin: 5px;
cursor: move;
cursor: grab;
cursor: -moz-grab;
cursor: -webkit-grab;
}
#stage {
border: 10px solid orange;
min-height: 100px;
}
<div id="words-wrap">
</div>
<div id="stage" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>