javascript - CSS 和 JQuery : Better Usability

标签 javascript jquery html css

我想改进以下代码的用户体验:

HTML:

<div class="news-item">
    <div class="main-content">
        <div class="header"> Header 1 </div>
        <div class="content"> lorum ipsum </div>
        <div class="time"> time </div>
    </div>
</div>

<div class="news-item">
    <div class="main-content">
        <div class="header"> Header </div>
        <div class="content"> lorum ipsum </div>
        <div class="time"> time </div>
    </div>
</div>​

JavaScript:

jQuery(document).ready(function() {
    $(".header").click(function () {
      $(this).parent().toggleClass("expand");
    });
});​

CSS:

body {
    background-color: whitesmoke;
}

.header{
    font-size: 20px;
    padding-bottom: 20px;
    cursor:pointer;
}

.main-content {
    margin: 0 0 12px 70px;
    padding: 0;
    background: rgb(251, 251, 251);
    width: 80%;
    -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
    -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.35);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
    position:relative;
    margin-left: 20px;
    margin-top: 20px;
    background-color: white;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    padding: 22px;
    height: 20px;
    overflow: hidden;
}

.expand {
    height: 200px;
}​

演示:http://jsfiddle.net/9UJ7f/4/

您可能会注意到,当您单击标题时,该框会展开或折叠。

但是,这仅在我们单击页眉时有效,例如当我们单击框的边框时(在折叠模式下)没有任何反应。

为了消除“无效点击”,我希望它是这样的:

一个。在折叠模式下: 如果您单击框(.main-content 类)上的任意位置,该元素将展开

B.在扩展模式下: 如果您只单击 .Header 类,该元素将再次收缩。

执行此操作的最佳方法是什么?

更新:

好吧,你是对的。 CSS 有点不对劲。 我选择 sandeep 的解决方案,因为它是最简约但最有效的解决方案。 但也要感谢所有提供帮助的人。特别是 thecodeparadox 和 Arif 的 JS 解决方案。 (尽管它在边界周围仍然有一些“无效点击”)。 你们真棒,伙计们。我会给你们所有人竖起大拇指。

最佳答案

jQuery(document).ready(function() {
    $('.header').click(function(e) {
        e.stopPropagation();
        $(this).parent().toggleClass('expand');
    })
    $(".main-content").click(function() {
        if (!$(this).hasClass('expand')) {
            $(this).addClass("expand");
        }
    });
});

Perfect working sample

关于javascript - CSS 和 JQuery : Better Usability,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847962/

相关文章:

javascript - 访问字符串化的 JSON 对象

javascript - 在网页上使用多个脚本 block 有什么区别?

jQuery:一键触发多个事件

javascript - 如何从 json 对象输出一些东西?

javascript - 发生Google Apps脚本服务器错误: DEADLINE_EXCEEDED

javascript - 如何在不从 html 传递的情况下获取 angularjs 脚本中的表单和输入字段的状态?

javascript - 如何使用 jquery/javascript 获取特定选项的复选框值?

python - 如何让 HTML 按钮激活 python 脚本?

javascript - HTML 文档中的元素 ID ~ 命名问题

javascript - 使用鼠标悬停调用函数。 (不同的选择)