javascript - onclick 时更改 div 元素的可见性和不透明度

标签 javascript jquery html css

我正在开发一个网站,我想在单击按钮后显示一个 div。现在,我可以使用以下方法在单击按钮时隐藏和显示:

<button type="submit" id="appendData" onclick="viewDetail()">View Detail</button>

<div id="right" style="display:none">
            <button type="submit" id="saveDetail" onclick="saveDetail()">Save details</button>
        </div>

<script>
    function viewDetail(){
        document.getElementById('right').style.display = "inline-block";
    }
    function saveDetail(){
        document.getElementById('right').style.display = "none";
    }

</script>

现在,没关系,但由于这是一个应该部署到我所有同事的网络应用程序,我希望它看起来不错并且使用起来顺畅,所以,我想添加一个过渡到分区我在谷歌上搜索了很多,我看到了一些有效的例子,但不是我想要的方式。我想改变它的可见性和不透明度,或者像 Android Material Design 那样从一个 Angular 落开始生长。

现在,在我的 css 文件中,我定义了这个:

#right {
    width: 40%;
    position: relative;
}
.right {
    visibility: hidden;
    opacity: 0;
    -webkit-transition: visibility 1s, opacity 1s linear;
    -moz-transition: visibility 1s, opacity 1s linear;
    -o-transition: visibility 1s, opacity 1s linear;
    transition: visibility 1s, opacity 1s linear;
}
.right-visible {
    visibility: visible;
    opacity: 1;
}

并且,在我的 html 代码中:

<div id="right" style="display:none" class="right" >
            <button type="submit" id="saveDetail" onclick="saveDetail()">Save details</button>

并处理按钮上的点击:

$(function() {
    $("#viewDetail").click(function() {
        $(".right").toggleClass("right-visible");
    });
});

但是,但是,它并没有进入执行 toggleClass 命令的函数。我也试过:

function saveDetail(){
    $(".right").toggleClass("right");
}
function viewDetail(){
    $(".right").toggleClass("right-visible");
}

但这也不起作用。我知道我遗漏了一些东西,但我找不到它是什么。将不胜感激。

最佳答案

请检查这个。我已经更改了 html 中的 button id 并删除了内联 css。

$(function() {
    $("#viewDetail").click(function() {
        $(".right").toggleClass("right-visible");
    });
     $("#saveDetail").click(function() {
        $(".right").removeClass("right-visible");
    });
});
#right {
    width: 40%;
    position: relative;
    border:1px solid #000;
    height:50px;
}
.right {
    visibility: hidden;
    opacity: 0;
    -webkit-transition: visibility 1s, opacity 1s linear;
    -moz-transition: visibility 1s, opacity 1s linear;
    -o-transition: visibility 1s, opacity 1s linear;
    transition: visibility 1s, opacity 1s linear;
}
.right-visible{
    opacity:1;
    visibility: visible;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="right" class="right" >
  <button type="submit" id="saveDetail">Save details</button>
</div>
<button type="submit" id="viewDetail">View details</button>

关于javascript - onclick 时更改 div 元素的可见性和不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295509/

相关文章:

javascript - 如何限制要在 ng-repeat 中显示的对象数量,

javascript - 书中的示例之一 "Javascript - The Definitive Guide"不起作用

javascript - 我如何知道用户何时与 Express 服务器断开连接

javascript - 如何仅使用显示为 :block? 的 div 填充 JavaScript 数组

javascript - click() 不适用于选项标签

html - 居中页面异常

javascript - 从本地主机域测试 facebook javascript 登录

javascript - AngularJS 指令不更新 D3 圆包图表

javascript - 使用 browserify 时如何在 AngularJS 中包含 jQuery?

html - 如何居中 Bootstrap 导航栏,但也拉 1 个元素吗?