2

看看以下示例:

http://jsfiddle.net/EWJGJ/13/

我想以这样的方式自定义此示例:

  1. Give div 的展开应该发生在单击而不是鼠标悬停时。目前它处于鼠标悬停状态。

  2. 单击的 div 应该在所有 div 上展开。也就是说,在上面的链接中,有 9 个 div。如果我单击任何 div,它应该会扩展所有 div。

  3. 行为应该是切换的。如果我再次单击展开的 div,它应该缩小到其原始位置并使其他 div 可见。

任何示例代码或链接都会非常有帮助。我基本上是在尝试创建具有这种行为的基于 Windows 8 样式磁贴的界面。

代码

HTML:

<table cellpadding="0" cellspacing="0" border="0" class="tabellainizio" align="center">
  <tr>
    <td><table cellpadding="0" cellspacing="1" border="0">
      <tr>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
      </tr>
      <tr>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
      </tr>
      <tr>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
        <td class="bordini">
        <div class="principale">
            <div class="contenitore">
                <div class="immagine">[immagine]</div>
                <div class="content">"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div>
            </div>
        </div>
        </td>
      </tr>
    </table></td>
  </tr>
</table>   

Javascript:

    $(window).load(function(){
$('.contenitore').hover(function() {
    $(this).animate({
        width: 300,
        height: 400,
        top: -80,
        left: -45
    }, 'fast');
    $(this).animate().css('box-shadow', '0 0 5px #000');
    $(this).css({
        zIndex: 100 
    });
}, function() {
    $(this).animate().css('box-shadow', 'none')
    $(this).animate({
        width: 210,
        height: 240,
        top: 0,
        left: 0
    }, 'fast');
    $(this).css({
        zIndex: 1
    });
});
});

CSS:

.tabellainizio {
    margin-top:100px;
}
.bordini {
    border: 1px #DDD solid;
}
.principale {
    height: 240px;
    width: 210px;
    position: relative;
}
.principale .contenitore {
    background-color: #fff;
    height: 240px;
    width: 210px;
    position: absolute;
    display: block;
    top: 0;
    left: 0;
}
.immagine {
    border: 1px solid maroon;
    margin: 15px auto;
    height: 168px;
    width: 168px;
    position:relative;
}
.content {
    display: none;
    margin: 15px;
}
.contenitore:hover {

}
.contenitore:hover .content {
    display: block;
}
.contenitore:hover .immagine {
    position:relative;
}
4

1 回答 1

1

替换hovertoggle,获取被点击元素父级的索引td-> 为列号和tr-> 为行号,将点击的元素移动到左上角:

$(window).load(function () {
    $('.contenitore').toggle(function () {

        $(this).css({
            'box-shadow': '0 0 5px #000',
            zIndex: 100
        }).animate({
            width: 212 * 3,
            height: 242 * 3,
            top: 0 - ($(this).parents('tr').index() * 242),
            left: 0 - ($(this).parents('td').index() * 212)
        }, 'fast');
    }, function () {

        $(this).animate({
            width: 210,
            height: 240,
            top: 0,
            left: 0
        }, 'fast', function () {
            $(this).css({
                zIndex: 1,
                'box-shadow': 'none'
            });
        });
    });
});

jsfiddle

于 2013-04-13T08:46:52.963 回答