mirror of
https://github.com/doublespeakgames/adarkroom.git
synced 2026-05-28 00:01:54 +08:00
Fix cross-browser support for language select
This fixes cross-browser support for the language select box by replacing it with a custom menu box.
This commit is contained in:
+40
-9
@@ -69,18 +69,49 @@ div#header {
|
|||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.select-wrap {
|
.customSelect {
|
||||||
display: inline-block;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
select.menuBtn {
|
span.customSelectOptions {
|
||||||
color: #666;
|
margin: 0;
|
||||||
border: none;
|
width: 80px;
|
||||||
cursor: pointer;
|
}
|
||||||
margin: -1px -20px 0 0;
|
|
||||||
background: transparent;
|
.customSelectOptions > ul {
|
||||||
|
max-height: 20px;
|
||||||
|
width: 80px;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-transition: max-height 1s;
|
||||||
|
transition: max-height 1s;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
bottom: 0;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customSelectOptions > ul:hover {
|
||||||
|
max-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customSelectOptions > ul > li {
|
||||||
|
padding: 0 0 3px 0;
|
||||||
|
list-style-type: none;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customSelectOptions > ul > li:last-child {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customSelectOptions > ul > li:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customSelectOptions > ul > li:first-child:hover {
|
||||||
|
cursor: default;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu span:hover {
|
.menu span:hover {
|
||||||
|
|||||||
+1
-1
@@ -72,7 +72,7 @@
|
|||||||
<script type='text/javascript'>
|
<script type='text/javascript'>
|
||||||
var oldIE = false;
|
var oldIE = false;
|
||||||
</script>
|
</script>
|
||||||
<!-- [if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script type="text/javascript">oldIE = true;</script>
|
<script type="text/javascript">oldIE = true;</script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|
||||||
|
|||||||
+6
-7
@@ -1,14 +1,13 @@
|
|||||||
var langs = {
|
var langs = {
|
||||||
'en':'english',
|
|
||||||
'fr':'français',
|
|
||||||
'de':'deutsch',
|
|
||||||
'cn':'简体中文',
|
'cn':'简体中文',
|
||||||
|
'de':'deutsch',
|
||||||
|
'en':'english',
|
||||||
'es': 'español',
|
'es': 'español',
|
||||||
'uk':'українська',
|
'fr':'français',
|
||||||
//'jp':'日本語',
|
'kr':'한국어',
|
||||||
|
'pl':'polski',
|
||||||
'ru':'русский',
|
'ru':'русский',
|
||||||
'sv':'svenska',
|
'sv':'svenska',
|
||||||
'pl':'polski',
|
|
||||||
'tr':'türkçe',
|
'tr':'türkçe',
|
||||||
'kr':'한국어'
|
'uk':'українська'
|
||||||
};
|
};
|
||||||
|
|||||||
+17
-9
@@ -116,17 +116,25 @@
|
|||||||
.appendTo('body');
|
.appendTo('body');
|
||||||
|
|
||||||
if(typeof langs != 'undefined'){
|
if(typeof langs != 'undefined'){
|
||||||
var selectWrap = $('<span>')
|
var customSelect = $('<span>')
|
||||||
.addClass('select-wrap')
|
.addClass('customSelect')
|
||||||
.appendTo(menu);
|
|
||||||
var select = $('<select>')
|
|
||||||
.addClass('menuBtn')
|
.addClass('menuBtn')
|
||||||
.append($('<option>').text("language."))
|
.appendTo(menu);
|
||||||
.change(Engine.switchLanguage)
|
var options = $('<span>')
|
||||||
.appendTo(selectWrap);
|
.addClass('customSelectOptions')
|
||||||
|
.appendTo(customSelect);
|
||||||
|
var optionsList = $('<ul>')
|
||||||
|
.appendTo(options);
|
||||||
|
$('<li>')
|
||||||
|
.text("language.")
|
||||||
|
.appendTo(optionsList);
|
||||||
|
|
||||||
$.each(langs, function(name,display){
|
$.each(langs, function(name,display){
|
||||||
$('<option>').text(display).val(name).appendTo(select)
|
$('<li>')
|
||||||
|
.text(display)
|
||||||
|
.attr('data-language', name)
|
||||||
|
.on("click", function() { Engine.switchLanguage(this); })
|
||||||
|
.appendTo(optionsList);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -660,7 +668,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
switchLanguage: function(dom){
|
switchLanguage: function(dom){
|
||||||
var lang = $(this).val();
|
var lang = $(dom).data("language");
|
||||||
if(document.location.href.search(/[\?\&]lang=[a-z]+/) != -1){
|
if(document.location.href.search(/[\?\&]lang=[a-z]+/) != -1){
|
||||||
document.location.href = document.location.href.replace( /([\?\&]lang=)([a-z]+)/gi , "$1"+lang );
|
document.location.href = document.location.href.replace( /([\?\&]lang=)([a-z]+)/gi , "$1"+lang );
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
Reference in New Issue
Block a user