2017-07-26 7 views
0

サイドバーの左側をクリックすると、トランジション効果を得ようとしています。例えばJqueryで動的なトランジションエフェクトを作成するには?

Ottogi

Sajo hapyo

あなたはOttogi(ラーメンの名前)をクリックした場合には、背景画像を変更する必要があり、そしてあなたがについてSajo hapyo(ラーメンの名前)知りたいのならば、それはすべき背景画像も変更します。基本的にサイドバーのすべての画像(eg. naturamaloodongushmay)です。

バックグラウンドイメージを変更するプログラムは機能しますが、オットーをクリックしたいときはいつでも停止します。停止するだけです。だから、基本的に同じことをしているので、私は条件文やループを使うべきだと思っています。 私はそれを手伝ってください、私はとても苦労しています。

この

は私が働いているウェブサイトです http://test1.testkz.ru/

HTML

<section id="main-showcase"> 
<div class="showcase-wrapper"> 
    <div class="left-main col-lg-3 col-md-3"> 
     <div class="shadow-effect"><p class="ottogi">OTTOGI</p></div> 
     <div class="shadow-effect"><p class="sajo">Sajo Hapyo</p></div> 
     <div class="shadow-effect"><p class="natura">Natura Bogata</p></div> 
     <div class="shadow-effect"><p class="maloo">ТОО Малу</p></div> 
     <div class="shadow-effect"><p class="dongush">Dongsuh</p></div> 
     <div class="shadow-effect"><p class="may">ООО Май</p></div> 
    </div> 
    <div class="right-main col-lg-9 col-md-9"> 
     <div class="inner-container"> 
      <h1>Ottogi</h1> 
      <h2>Южно - Корейские продукты питания высочайшего качества!</h2> 
     </div> 
     <div class="box-container"> 
      <div class="main-wrap"> 
       <div id="main-slider" class="first-slider"> 
        [[getImageList? 
         &tvname=`goods` 
         &tpl=`goodsSlider.tpl` 
        ]] 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

CSS

.ottogi-bg { 
    background: url('/assets/template/images/main_03.jpg') no-repeat center; 
    opacity: 1; 
    animation-name: fadeInOpacity; 
    animation-iteration-count: 1; 
    animation-timing-function: ease-in; 
    animation-duration: 1s; 
} 
@keyframes fadeInOpacity { 
    0% { 
     opacity: 0; 
    } 
    100% { 
     opacity: 1; 
    } 
} 
.sajo-bg { 
    background: url('../images/about-us-company-bg.jpg'); 
    opacity: 1; 
    animation-name: fadeInOpacity; 
    animation-iteration-count: 1; 
    animation-timing-function: ease-in; 
    animation-duration: 1s; 
} 
@keyframes fadeInOpacity { 
    0% { 
     opacity: 0; 
    } 
    100% { 
     opacity: 1; 
    } 
} 

JS

$('p.ottogi').click(function(){ 
    $('.right-main').addClass('ottogi-bg'); 
}); 
$('p.sajo').click(function(){ 
    $('.right-main').addClass('sajo-bg'); 
}); 

答えて

1

後の理由は、あなたが.right-mainクラスにクラスを追加し続けるということです。つまり、最終的には.right-main .ottogi-bg .sajo-bgとなります。 sajo-bgはCSSで最後に定義したクラスなので、常にottori-bgクラスをオーバーライドします。

あなたはこの試みることができる:あなたは以前のクラスが削除されていることを確認し、あなたは、あなたが希望するクラスを追加することができます。これにより

$('.ottogi').click(function(){ 
 
    $('.right-main').removeClass().addClass("right-main ottogi-bg");  
 
}); 
 
$('.sajo').click(function(){  
 
    $('.right-main').removeClass().addClass("right-main sajo-bg");  
 
});
.right-main{ 
 
    background-color:grey; 
 
    padding:20px; 
 
} 
 
.ottogi-bg{ 
 
    background-color:blue; 
 
} 
 
.sajo-bg{ 
 
    background-color:red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#" class="ottogi">ottogi</a><br/> 
 
<a href="#" class="sajo">sajo</a><br/> 
 
<div class="right-main"> 
 
    Test 
 
</div>

を。

0

JavaScriptコードが問題だと思います。

ユーザーがottogiをクリックした場合は、sajoをクリックします。

  1. .RIGHT-メインdivがオットゥギ-BGクラスに追加され
  2. .RIGHT-メインのdivがsajo-BGクラス

2回のクリック後、.RIGHT-メインは、2つのクラスを持って追加されます。たぶんクライアント側が混乱しているかもしれません。

このソリューションは、そのようなものです...コード

$('.right-main').removeClass('sajo-bj'); 

以下に設定

$('.right-main').addClass('ottogi-bg'); 
関連する問題