![](/img/trans.png)
[英]How can I make it so this script executes only above a certain screen size?
[英]How to make a button so that it can only be dragged to a certain extent?
我想知道是否有可能做到这一点,以便当您将鼠标悬停在一个按钮上以将其向右或向左移动时,它仅移动了200px。 因此,一旦将其移动200像素,就不能再移动200像素,但是一旦将其移动回到其原始位置,就可以再次将其移动200像素。
我有这个JavaScript代码
<script type="text/javascript" language="javascript">
//<![CDATA[
// window.onload=function() {
// document.getElementById("d2").onmouseover = slideIt("toRight");
// document.getElementById("d3").onmouseover = slideIt("toLeft");
// };
function slideIt(actionReturn) {
var slidingDiv = document.getElementById("d1");
var stopPosition = 50;
var startPosition = slidingDiv.offsetWidth+slidingDiv.offsetWidth;
if (actionReturn == "toRight") {
if (parseInt(slidingDiv.style.left) >= 0 )
{
slidingDiv.style.left = parseInt(slidingDiv.style.left) - 200 + "px";
setTimeout(slideIt, 1);
}
}
if (actionReturn == "toLeft") {
if (parseInt(slidingDiv.style.left) < startPosition ) {
slidingDiv.style.left = parseInt(slidingDiv.style.left) + 200 + "px";
setTimeout(slideIt, 1);
}
}
}
//]]>
</script>
您需要定义三个标志(即三个变量)来跟踪运动; 这样一来,您需要定义一个按钮,该按钮指示按钮在其原始位置;一个按钮,指示按钮向右移动;一个按钮,指示按钮向左移动。 这些变量将保存布尔值(true,false)。 在每张幻灯片上,您需要检查这些标志以指定是否实际发生移位。
这是对代码的建议更新:
<script type="text/javascript" language="javascript">
var isInOriginalPosition = true;
var isShiftedToRight = false;
var isShiftedToLeft = false;
function slideIt(actionReturn) {
var slidingDiv = document.getElementById("d1");
var stopPosition = 50;
var startPosition = slidingDiv.offsetWidth+slidingDiv.offsetWidth;
if (actionReturn == "toRight") {
if (isShiftedToRight && !isInOriginalPosition)
{
return;
}
else if (isShiftedToLeft && !isInOriginalPosition)
{
slidingDiv.style.left = parseInt(slidingDiv.style.left) - 200 + "px";
setTimeout(slideIt, 1);
isShiftedToLeft = false;
isInOriginalPosition = true;
}
else if (isInOriginalPosition)
{
slidingDiv.style.left = parseInt(slidingDiv.style.left) - 200 + "px";
setTimeout(slideIt, 1);
isShiftedToRight = true;
isInOriginalPosition = false;
}
}
if (actionReturn == "toLeft") {
if (isShiftedToLeft && !isInOriginalPosition)
{
return;
}
else if (isShiftedToRight && !isInOriginalPosition)
{
slidingDiv.style.left = parseInt(slidingDiv.style.left) + 200 + "px";
setTimeout(slideIt, 1);
isShiftedToRight = false;
isInOriginalPosition = true;
}
else if (isInOriginalPosition)
{
slidingDiv.style.left = parseInt(slidingDiv.style.left) + 200 + "px";
setTimeout(slideIt, 1);
isShiftedToLeft = true;
isInOriginalPosition = false;
}
}
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.