2017-02-21 13 views
0

私は華氏と摂氏の間で切り替えるための温度を得ることができました。しかし、私はボタンをFとCの間で切り替えるにはどうすればいいですか?

FとCの間で前後に移動するために小さなボール/ボタンを取得することができませんでした

$(document).ready(function() { 
 
    
 
    var mainCities = { 
 
    'San Francisco' : { 
 
     'region': 'California', 
 
     'country': "United States", 
 
     'lat': 37.7749300, 
 
     'lon': -122.4194200 
 
    }, 
 
    'St. Louis': { 
 
     'region': 'Missouri', 
 
     'country': "United States", 
 
     'lat': 38.6272700, 
 
     'lon': -90.1978900 
 
    }, 
 
    'Miami': { 
 
     'region': 'Florida', 
 
     'country': "United States", 
 
     'lat': 25.7742700, 
 
     'lon': -80.1936600 
 
    }, 
 
    'Tokyo': { 
 
     'region': 'Tokyo', 
 
     'country': "Japan", 
 
     'lat': 35.689500, 
 
     'lon': 139.6917100 
 
    } 
 
    } 
 
    
 
    var currentLat; 
 
    var currentLong; 
 
    
 
    function getLocation() { 
 
    $.getJSON('http://ip-api.com/json/?callback=?', function(data) { 
 
     
 
     //var currentRegion = data.regionName; 
 
     var currentCity = data.city; 
 
     currentLat = data.lat; 
 
     currentLong = data.lon; 
 
     
 
     $("#cityname").text(currentCity); 
 
     
 
     getWeather(); 
 
     
 
    }); 
 
    } 
 
    
 
function getWeather() { 
 
    
 
    $.getJSON('http://api.openweathermap.org/data/2.5/weather?lat=' + currentLat + '&lon=' + currentLong + '&units=imperial&APPID=e656b9ee098cf2341fcfdb365b96b4a8', function(json) { 
 
    
 
    var showfahrenheit = true; 
 
    var tempfahrenheit = Math.round(json.main.temp); 
 
    var temcelcius = Math.round((tempfahrenheit - 32) * 5/9); 
 
    
 
    $("#temp").html(tempfahrenheit); 
 
    
 
    $('#unit-switch').on('click', function() { 
 
     if (showfahrenheit === false) { 
 
     $("#temp").html(tempfahrenheit); 
 
     showfahrenheit = true; 
 
     } else { 
 
     $("#temp").html(temcelcius); 
 
     showfahrenheit = false; 
 
     } 
 
     
 
     $("#unit-toggle").toggleClass("toggle"); 
 
\t \t \t //$('#temp').toggleClass('toggle'); 
 
    }); 
 
    
 
    }); 
 
}; 
 
    
 
    $(".cityarea").html(getLocation); 
 
    
 
    
 
});
@import url('https://fonts.googleapis.com/css?family=Roboto:300,400'); 
 
body { 
 
    position: relative; 
 
} 
 
html,body{ 
 
    height:100%; 
 
} 
 
.wrapper { 
 
    width: 100%; 
 
    height: 100%; 
 
    position: relative; 
 
} 
 
.container { 
 
    position: relative; 
 
    display: block; 
 
    margin: 0 auto; 
 
    width: 60%; 
 
} 
 
.header h1 { 
 
    text-align: center; 
 
    font-family: 'Roboto', sans-serif; 
 
    font-weight: normal; 
 
} 
 
.weatherbox { 
 
    text-align: center; 
 
} 
 
.cityarea h2 { 
 
    color: #000000; 
 
} 
 
.dropdown{ 
 
    position: relative; 
 
    display: inline-block; 
 
    font-size: 16px; 
 
    color: #FFF; 
 
} 
 
input[type=checkbox]{ 
 
    display: none; 
 
} 
 
label{ 
 
    box-sizing: border-box; 
 
    display: inline-block; 
 
    width: 100%; 
 
    background-color: #57A0D4; 
 
    padding: 10px 20px; 
 
    cursor: pointer; 
 
    text-align: center; 
 
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 
 
    border-radius: 5px; 
 
    font-size: 20px; 
 
    -webkit-user-select: none; 
 
    -moz-user-select: none; 
 
    -ms-user-select: none; 
 
    user-select: none; 
 
} 
 
label .fa-globe { 
 
    margin-right: 10px; 
 
} 
 
/* The ul will have display:none by default */ 
 
ul{ 
 
    position: absolute; 
 
    list-style: none; 
 
    text-align: left; 
 
    width: 100%; 
 
    min-width: 160px; 
 
    z-index: 1; 
 
    padding: 5px 0; 
 
    margin: 2px 0 0; 
 
    font-size: 14px; 
 
    text-align: left; 
 
    box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2); 
 
    display: none; 
 
    background-color: #fff; 
 
    border: 1px solid #ccc; 
 
    border: 1px solid rgba(0,0,0,.15); 
 
    border-radius: 4px; 
 
    -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175); 
 
    box-shadow: 0 6px 12px rgba(0,0,0,.175); 
 
} 
 
ul li{ 
 
    /*padding: 15px;*/ 
 
    background-color: #fff; 
 
    color: #4FB9A7; 
 
    margin-bottom: 1px; 
 
    cursor: pointer; 
 
} 
 
ul li a { 
 
    padding: 8px 20px; 
 
    color: inherit; 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
ul li a:hover{ 
 
    background-color: #4FB9A7; 
 
    color: #FFF; 
 
} 
 
input[type=checkbox]:checked ~ label { 
 
    background-color: #3D88BD; 
 
} 
 
input[type=checkbox]:checked ~ ul { 
 
    display: block; 
 
} 
 
ul .divider { 
 
    height: 1px; 
 
    margin: 9px 0; 
 
    overflow: hidden; 
 
    background-color: #e5e5e5; 
 
} 
 
.temperaturearea span#temp { 
 
    position: relative; 
 
    color: #000000; 
 
    font-size: 80px; 
 
} 
 
.temperaturearea #temp:after { 
 
    content: ''; 
 
    position: absolute; 
 
    height: 10px; 
 
    width: 10px; 
 
    top: 16px; 
 
    right: -17px; 
 
    border: 3px solid #000000; 
 
    border-radius: 50%; 
 
} 
 
.weather > span { 
 
    position: relative; 
 
    font-size: 1.2rem; 
 
} 
 
.weather > span:before { 
 
    content: ''; 
 
    position: absolute; 
 
    left: -10px; 
 
    top: 0px; 
 
    height: 3px; 
 
    width: 3px; 
 
    border: 2px solid #000; 
 
    border-radius: 50%; 
 
} 
 
.main-toggle span { 
 
    margin: 0 0 0 16px; 
 
} 
 
.main-toggle span:last-child { 
 
    margin-left: 11px; 
 
} 
 
.weather button { 
 
\t \t background: #6bbf6b; 
 
\t \t border: none; 
 
\t \t border-radius: 30px; 
 
\t \t outline: none; 
 
\t \t width: 45px; 
 
\t \t height: 20px; 
 
\t \t margin: 5px 5px 0; 
 
\t \t cursor: pointer; 
 
\t \t position: relative; 
 
\t \t transition: background .2s; 
 
} 
 
.weather button:active { 
 
\t \t background: #67b567; 
 
\t } 
 
.weather #unit-toggle { 
 
\t \t position: absolute; 
 
\t \t display: inline-block; 
 
\t \t left: -8px; 
 
\t \t top: 2px; 
 
\t \t width: 15px; 
 
\t \t height: 15px; 
 
\t \t background: #fff; 
 
\t \t border-radius: 50%; 
 
\t \t transition: left .2s; 
 
} 
 
.toggle { 
 
\t \t left: 27px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div class="container"> 
 
    <div class="header"><h1>Local Weather</h1></div> 
 
    <div class="weatherbox"> 
 
     <div class="cityarea"> 
 
     <h2 id="cityname"></h2> 
 
     </div> 
 
     <div class="countryarea"> 
 
     <h3 id="state"></h3> 
 
     <h3 id="country"></h3> 
 
     </div> 
 
     <!--<div class="dropdownlocation"> 
 
     <div class="dropdown"> 
 
     <input type="checkbox" id="checkbox-toggle"> 
 
    <label for="checkbox-toggle"><i class="fa fa-globe" aria-hidden="true"></i><i class="fa fa-caret-down" aria-hidden="true"></i></label> 
 
    <ul> 
 
     <li><a href="#">Current Location</a></li> 
 
     <li class="divider"></li> 
 
     <li><a href="#">Main Cities</a></li> 
 
     </li> 
 
    </ul> 
 
     </div> 
 
     </div>--> 
 
    <div class="temperaturearea"> 
 
     <div> 
 
     <span id="wicon"></span> 
 
     </div> 
 
     <div id="wdescription"></div> 
 
     <span id="temp"></span> 
 
     <div class="weather main-toggle"> <!-- Begin Unit Switch --> 
 
     <span>F</span> 
 
     <button id="unit-switch"><span id="unit-toggle"></span></button> 
 
     <span>C</span> 
 
    </div> 
 
    </div> 
 
    </div> 
 
    </div> 
 
</div>

あなたもCodepenで私のコードをチェックアウトすることができます:http://codepen.io/kikibres/pen/EZMJZw

私は何を欠席しましたか?私は#unit-switchをクリックするたびにクラス.toggleを使ってtoggleClassをトグルしようとしています。

+0

を???私は私が求めている質問に関連して、特定のコードを表示しているだけです。 –

+0

@KristinaBressler何か外部のリンクではなく、あなたの質問の実際の例をここに投稿する方がよいからです。そうすれば、将来的に外部リンクが無効になった場合でも、ここにコードが残っています。 –

+0

@Kristina他の場所に行く代わりにここでコードを実行できますか? –

答えて

2

あなたのCSSセレクタは

.weather #unit-toggleオーバーライド.toggleleftプロパティは十分ではありません。 codepen #unit-toggle.toggle

を試してみてください :http://codepen.io/anon/pen/XpvOvV

1

あなたの前のセレクタは、あなたがこれを使用する必要があり、それのバランスをとるので、より具体的である:なぜあなたは質問を変えなかった

#unit-toggle.toggle { 
    left: 15px; 
} 
関連する問題