所以基本上我想要实现的是,
- 当人们点击第一张图片时,其余的会滑动和淡出,然后内容加载,
- 当人们关闭时,它将恢复为 4 个图像,
- 当人们点击第二张图片时;图像 1、3 和 4 将滑动并淡出,内容显示等等。
我尝试使用 Jquery,但结果仍然为零。
所以基本上我想要实现的是,
我尝试使用 Jquery,但结果仍然为零。
是的当然。
设置是:
.leftOffscreen
,将 left 设置为 -100px,并将.rightOffscreen
其设置为您想要的任何最大值。(一旦它开始工作,尽可能使用转换而不是左/右,因为它将在某些浏览器上进行硬件加速,因此性能更高)算法:
这(经过一些试验和错误)实际上主要通过 CSS 实现,纯 JavaScript 仅用于切换类名(当单击一个块和单击关闭链接时)。
如果.block.active
在 CSS 中替换为,.block:hover
以便每个块在悬停时展开,并且关闭链接(和样式)被删除,那么根本不需要 JS。
HTML:
<div class="block">
<div class="closelink">X</div>
</div>
<div class="block">
<div class="closelink">X</div>
</div>
<div class="block">
<div class="closelink">X</div>
</div>
<div class="block">
<div class="closelink">X</div>
</div>
CSS:
body {
text-align: center
}
.block {
display: inline-block;
position: relative;
width: 60px;
height: 60px;
background: #08f;
margin: 50px;
cursor: pointer;
border-radius: 8px;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
transition: margin 1s;
-moz-transition: margin 1s;
-webkit-transition: margin 1s;
-o-transition: margin 1s;
-ms-transition: margin 1s;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none
}
.block .closelink {
position: absolute;
width: 20px;
height: 20px;
right: -20px;
top: -20px;
visibility: hidden;
font-size: 14px;
font-family: Segoe UI, Tahoma, Arial, Verdana, sans-serif;
background: #ccc;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px
}
.block.active {
margin-left: 200px;
margin-right: 200px
}
.block.active .closelink {
visibility: visible
}
JavaScript:
window.addEventListener('load', init, false);
function init() {
var blocks = document.getElementsByClassName('block');
var closeLinks = document.getElementsByClassName('closelink');
for(i = 0; i < blocks.length; i++) {
blocks[i].addEventListener('click', blockClicked, false);
}
for(i = 0; i < closeLinks.length; i++) {
closeLinks[i].addEventListener('click', closeLinkClicked, false);
}
}
function blockClicked(e) {
var blocks = document.getElementsByClassName('block');
for(i = 0; i < blocks.length; i++) {
blocks[i].className = 'block';
}
e.target.className = 'block active';
}
function closeLinkClicked(e) {
e.stopPropagation();
e.target.parentElement.className = 'block';
}