javascript - 无法通过 JavaScript 更改页面样式

标签 javascript css styles numbers undefined

我在从我的脚本获取值时遇到问题,请在我的网站上进行更改。我想要完成的是允许用户滚动浏览我页面上的某些元素,向左或向右移动。请记住,我不是很擅长 JavaScript,所以这是我目前所掌握的。

window.onload = makeActive;
function makeActive() {
var showCase = document.getElementById("showcase");
var slides = showCase.getElementsByTagName("div");
var mouseDown = false;
if(window.addEventListener) {
    showCase.addEventListener('mousedown',startDrag,false);
    document.body.addEventListener('mousemove',drag,false);
    document.body.addEventListener('mouseup',stopDrag,false);
}
else if(window.attachEvent) {
    showCase.attachEvent('onmousedown',startDrag);
    document.body.attachEvent('onmousemove',drag);
    document.body.attachEvent('onmouseup',stopDrag);
}
function startDrag(e) {
    mouseDown = true;
}
function drag(e) {
    if(mouseDown == true) {
        for(var i=0; i < slides.length; i += 1) {
            slides[i].style.left -= e.clientX + "px";
        }
    }
}
function stopDrag(e) {
    mouseDown = false;
    }
}

基本上,它的作用是选择我的 showCase 元素中的所有 div 元素。它继续检查我的鼠标是否悬停在它上面,如果是,它会检查我的鼠标是否按下,如果我的鼠标按钮按下,它会检查我的鼠标向左或向右移动。这一切都很好,但是当我尝试循环浏览我的幻灯片时,当我尝试对幻灯片进行任何形式的方程式时,问题就出现了,它给了我一个解析错误。我认为这是因为当我尝试引用 slides[i].style.left 时,它以字符串形式出现。我试过将它解析为数字形式,并且 剥离它的字符,但这似乎不起作用。我也尝试过使用“leftoffset”来获取值,但无论我做什么,它都会给我一个错误,即“style.left is undefined”、“NaN”或“parse error: declaration dropped”。有更简单的方法吗?

最佳答案

我相信是这一行:

slides[i].style.left -= e.clientX + "px";

如果 slides[i].style.left 的值类似于 10px,则不能减去整数值。您需要先删除“px”:

var leftPos = 0;
if(slides[i].style.left) {
    leftPos =  slides[i].style.left.toString().replace(/(px)/i, "");
}
slides[i].style.left = (leftPos - e.clientX) + "px";

关于javascript - 无法通过 JavaScript 更改页面样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20508100/

相关文章:

javascript - 我正在尝试使用 Tornado 数据制作旭日图

css - 当元素出现在其上方时,Chrome 渐变会改变颜色

css - 让漂浮的 child 在溢出之外可见 :hidden parent

css - 元素在开发工具中消失

javascript - 将 javascript 变量转换为 php 并使用 session 发送它

JavaScript + Thymeleaf - 选择 onchange

ASP.NET : What exactly is affected when Javascript is off?

javascript - 如何使用 Jquery 触发 onload 事件?

android - 如何以编程方式更改主题颜色 : style, 属性 android?

php - 在页面的正中央制作下拉菜单