如何更改JavaScript文件中的CSS属性?

如何解决如何更改JavaScript文件中的CSS属性?

我想知道如何在输入正确的密码后将锁的边框更改为透明透明。

我的JavaScript就是这样,当触发IF时,我需要先锁,然后将值更改为透明透明

function lock(){
    alert("It's locked,you have to guess the password.");
    var pass = prompt("");
    if (pass == "opensesame") {
       alert("Lock opened");
       
    } else {
      alert("Wrong password"); 
}
}

我的CSS就是这样,之前需要通过javascript函数将锁定更改为稳定透明。

body {
    position: absolute;
    color: #00ff80;
    background: green;
    top: 100px;
    left: 200px;
}
#lock {
    font-size: 8px;
    position: relative;
    width: 18em;
    height: 13em;
    border-radius: 2em;
    top: 10em;
    Box-sizing: border-Box;
    border: 3.5em solid red;
    border-right-width: 7.5em;
    border-left-width: 7.5em;
    margin: 0 0 6rem 0;
  }
  #lock:before {
    content: "";
    Box-sizing: border-Box;
    position: absolute;
    border: 2.5em solid red;
    width: 14em;
    height: 12em;
    left: 50%;
    margin-left: -7em;
    top: -12em;
    border-top-left-radius: 7em;
    border-top-right-radius: 7em;
  }
  #lock:after {
    content: "";
    Box-sizing: border-Box;
    position: absolute;
    border: 1em solid red;
    width: 5em;
    height: 8em;
    border-radius: 2.5em;
    left: 50%;
    top: -1em;
    margin-left: -2.5em;
  }
#button {
    background: transparent;
}

我的HTML就是这样,它所做的只是创建一个按钮和一些文本。

<!DOCTYPE html>
<html>
    <head>
        <title>The lock</title>
    </head>
    <body>
        <h1>Unlock the lock</h1>
        <button id=button onclick="lock()"><div id=lock></div></button>
    </body>
</html>

解决方法

尝试这样的事情。

var str = '1em solid transparent';
document.styleSheets[0].addRule('#lock:before','border: "'+str+'";');
,

可以通过使用新的类名称来更改伪元素的样式。例如,一旦输入的密码有效,就将类名unlocked添加到#lock元素中。

您可以为新类添加以下样式:

#lock.unlocked::before {
  border: 1em solid transparent;
  /* Your style for unlocked goes here */
}

您的脚本以及添加了.unlocked类的新指令。

function lock() {
  alert("It's locked,you have to guess the password.");
  var pass = prompt("");
  if (pass == "opensesame") {
    alert("Lock opened");
    document.getElementById("lock").classList.add("unlocked"); /* NEW */
  } else {
    alert("Wrong password");
  }
}
,

向按钮添加类或从按钮移除类。伪元素不能直接从JavaScript定位,因此您必须使用CSS来更改样式。

// Select the button
const button = document.querySelector('button');

function lock(){
    alert("It's locked,you have to guess the password.");
    var pass = prompt("");
    if (pass == "opensesame") {
       // Add the class.
       button.classList.add('unlocked');
    // If it already has the class..
    } else if (button.classList.contains('unlocked')) {
       //.. then remove it.
       button.classList.remove('unlocked');
    }
}

然后在您的CSS中添加具有所需样式的类。

#lock.unlocked::before {
  border: 2.5em solid transparent;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?