基本的に私が達成しようとしているのは、
- ユーザーが最初の画像をクリックすると、残りの画像がスライドしてフェードし、コンテンツが読み込まれます。
- 人が閉じると、4 つの画像に戻ります。
- 人々が2番目の画像をクリックしたとき; 画像 1、3、4 がスライドしてフェードアウトし、コンテンツが表示されます。
Jqueryをいじってみましたが、結果はゼロでした。
ここにリンクがあります: http://homethai.com.au/testing/test.swf
基本的に私が達成しようとしているのは、
Jqueryをいじってみましたが、結果はゼロでした。
ここにリンクがあります: http://homethai.com.au/testing/test.swf
はい、もちろん。
セットアップは次のとおりです。
.leftOffscreen
左を-100pxに設定し、必要な最大値に設定するクラスを作成.rightOffscreen
します。(機能するようになったら、左/右の代わりに変換を使用してください。これは、一部のブラウザーでハードウェア アクセラレーションが実行され、パフォーマンスが向上するためです)アルゴリズム:
leftOffscreen
大きい場合はクラスを追加し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';
}