ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryコードで画像の自動+手動フェードイン・フェードアウト切り替え効果を実現wall_jquery

jQueryコードで画像の自動+手動フェードイン・フェードアウト切り替え効果を実現wall_jquery

WBOY
WBOYオリジナル
2016-05-16 15:01:321468ブラウズ

関連記事:

画像カルーセル効果を実装するための Jquery コード (1)

Web ページの背景画像に自動的にフェードインおよびフェードアウトする効果がよく見られますが、これは非常に美しく、非常に実用的です。今日は、jquery コードに基づいたピクチャー ウォールの自動 + 手動フェードインとフェードアウトの切り替え効果を共有します。一緒に学びましょう。

最初にレンダリングを示しますが、これが良いと思われる場合は、具体的な実装コードを参照してください。


div (class=container) を追加し、幅と高さを設定します。ここでは、幅は 800px、高さは 450px です。中央配置を追加します。画像を保持するための div に ul (class="img") リストを追加します。ul 内の li タグの位置を絶対値に設定します。このとき、画像は重なって表示されません。画像は幅と高さをコンテナと同じに設定します。下の数字の行を保持する別の ul リストをコンテナに追加し、それに応じて配置して設定します。 2 つの div を追加します: left と right (それぞれ左ボタンと右ボタン)、内側の矢印はそれぞれ大なり記号と小なり記号です。

実装のアイデアと原則の紹介:

マウスが対応する番号の上に移動すると、$(this).index() を使用してその番号が配置されているコンテナ内のシリアル番号を取得し、そのシリアル番号を eq() 関数に渡して li を取得します。このようにして、隠されたピクチャが表示され、同時に sibling().fadeOut() が呼び出され、同じレベルの兄弟ノードが非表示になります。画像は隠されています。

画像も同時に変更するsetInterval()関数を追加します。

大きな問題は、自動切り替えと手動切り替えの間の競合だと思います。ここで使用される方法は、マウスが画像上に移動したときに停止する必要があります。

コンテナにホバー関数を追加します。マウスがコンテナ内に移動するときに、clearInterval() 関数を使用して時間間隔関数を削除します。このようにすると、マウスが画像上を移動しても画像が切り替わりません。マウスが移動するときに追加します setInterval() 関数。このようにして、画像を切り替え続けることができます。


注: i と t は、異なる関数を共有できるようにグローバル変数として設定する必要があります。 i は現在表示されている画像のインデックスを表します。 t は setInterval の ID です。マウスが外に移動するときは、 var a t を実行する必要はなく、単に t=setInterval(time_fun,1500); だけです。

eq(n): n 番目の要素を検索します


例: $('li').eq(2).css('background-color', 'red');//2 番目の li タグの背景色を赤に設定します


index(): 要素

のインデックス値を検索します。

興味がある場合は、コードを調べてください:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-">
<title>jquery_img_switch</title>
</head>
<style type="text/css">
*{
margin: ;
padding: ;
}
.container{
width: px;
height: px;
margin: px auto;
position: relative;
}
.container .img{
list-style: none;
/*position: absolute;*/
}
.container .img li{
position: absolute;
display: none;
}
.container .img img{
width: px;
height: px;
}
.container .num{
position: absolute;
list-style: none;
font-size: ;
bottom: px;
width: %;
text-align: center; 
}
.container .num li{
width: px;
height: px;
background: rgba(,,,.);
border-radius: %;
color: #;
display: inline-block;
line-height: px;
text-align: center;
font-size: px;
margin-right: px;
cursor: pointer;
}
.left, .right{
width: px;
height: px;
text-align: center;
line-height: px;
background-color: rgba(,,,.);
color: #fff;
position: absolute;
top: %;
margin-top: -px; 
font-size: px;
cursor: pointer;
}
.left{
left: px;
}
.right{
right: px;
}
.container .num .active{
background: rgba(,,,);
color: #fff;
}
</style>
<script type="text/javascript" src="../jquery-...min.js"></script>
<script type="text/javascript">
var i=;
var t;
$(document).ready(function(){
$(".container .img li").eq(i).fadeIn().siblings().fadeOut(); 
$(".container .num li").on("mouseover",active);
t=setInterval(time_fun,);
$(".container").hover(in_fun,out_fun);
$(".container .left").on("click",left_fun);
$(".container .right").on("click",right_fun);
});
function time_fun(){
i++;
if(i==){
i=;
}
$(".container .num li").eq(i).addClass("active").siblings().removeClass("active");
$(".container .img li").eq(i).fadeIn().siblings().fadeOut();
}
function in_fun(){
clearInterval(t);
}
function out_fun(){
t=setInterval(time_fun,);
}
function active(){
$(this).addClass("active").siblings().removeClass("active");
$(".container .img li").eq($(this).index()).fadeIn().siblings().fadeOut();
i=$(this).index();
}
function left_fun(){
i--;
if(i==-){
i=;
}
$(".container .num li").eq(i).addClass("active").siblings().removeClass("active");
$(".container .img li").eq(i).fadeIn().siblings().fadeOut();
}
function right_fun(){
i++;
if(i==){
i=;
}
$(".container .num li").eq(i).addClass("active").siblings().removeClass("active");
$(".container .img li").eq(i).fadeIn().siblings().fadeOut();
}
</script>
<body>
<div class="container">
<ul class="img">
<li ><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
<li><img src="../../Img/.jpg"></li>
</ul>
<ul class="num">
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div class="left"><</div>
<div class="right">></div>
</div>
</body>
</html>
上記は、ピクチャー ウォールの自動 + 手動フェードイン切り替え効果を実現するためにエディターが提供した jQuery コードです。同時に、お役に立てば幸いです。また、Script House の Web サイトをサポートしていただき、誠にありがとうございます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。