mobile optimizations

This commit is contained in:
Ethan O'Brien 2023-07-11 08:40:42 -05:00
parent 07e81bc854
commit 0fa22f0afe
3 changed files with 249 additions and 118 deletions

17
a.html
View file

@ -1,8 +1,13 @@
<div style='width:640px;height:480px;max-width:100%'> <html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div> <div id='game'></div>
</div> </div>
<script type='text/javascript'> <script type='text/javascript'>
EJS_player = '#game'; EJS_player = '#game';
EJS_core = 'nes'; EJS_core = 'nes';
EJS_gameUrl = 'roms/mega_mountain.nes'; EJS_gameUrl = 'roms/mega_mountain.nes';
@ -16,5 +21,7 @@
EJS_volume = 1; EJS_volume = 1;
//EJS_startOnLoaded = true; //EJS_startOnLoaded = true;
//EJS_loadStateURL = "mega_mountain.state"; //EJS_loadStateURL = "mega_mountain.state";
</script> </script>
<script src='data/loader.js'></script> <script src='data/loader.js'></script>
</body>
</html>

View file

@ -199,31 +199,6 @@
outline: 0; outline: 0;
} }
.ejs_menu_bar {
padding: 15px 10px 10px;
background: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.7));
border-bottom-left-radius: inherit;
border-bottom-right-radius: inherit;
bottom: 0;
color: #fff;
left: 0;
position: absolute;
right: 0;
transition: opacity .4s ease-in-out,transform .4s ease-in-out;
z-index: 3;
align-items: center;
display: flex;
justify-content: flex-start;
text-align: center;
}
.ejs_menu_bar svg {
display: block;
fill: currentColor;
height: 18px;
pointer-events: none;
width: 18px;
}
.ejs_menu_bar_hidden { .ejs_menu_bar_hidden {
opacity: 0; opacity: 0;
@ -234,10 +209,85 @@
.ejs_svg_rotate { .ejs_svg_rotate {
transform: rotate(90deg); transform: rotate(90deg);
} }
.ejs_menu_button svg { @media (max-width: 575px) {
.ejs_settings_parent::after {
left: 15px;
}
.ejs_menu_bar {
transition: opacity .4s ease-in-out,transform .4s ease-in-out;
position: absolute;
transform: translate(-50%,0)!important;
width: 300px;
max-height: 260px;
display: flex;
flex-wrap: wrap;
align-items: flex-start;
background: rgba(0,0,0,.9);
padding: 10px;
z-index: 999;
left: 50%;
bottom: 0;
}
.ejs_menu_button {
width: 135px;
margin-left: 2px!important;
margin-right: 0!important;
line-height: 1;
background: 0 0;
border: 0;
border-radius: 3px;
color: inherit;
cursor: pointer;
flex-shrink: 0;
overflow: visible;
padding: 7px;
position: relative;
transition: all .3s ease;
}
.ejs_menu_button:hover {
background: rgba(var(--ejs-primary-color),1);
color: #fff;
}
.ejs_menu_button svg {
float: left;
transition: transform .3s ease; transition: transform .3s ease;
}
.ejs_menu_text {
position: static;
color: #fff;
background: 0 0;
opacity: 1;
padding: 0;
transform: scale(.8)!important;
font-size: 12px;
}
.ejs_menu_bar_spacer {
display:none;
}
.ejs_volume_parent span {
display: none;
}
.ejs_volume_parent button {
width: 30px;
}
} }
.ejs_menu_button { @media (min-width: 575px) {
.ejs_settings_parent {
right: -3px;
}
.ejs_settings_parent::after {
right: 15px;
}
.ejs_settings_text {
display: none;
}
.ejs_menu_bar_spacer {
flex:1;
}
.ejs_menu_button svg {
transition: transform .3s ease;
}
.ejs_menu_button {
width: auto; width: auto;
margin: auto; margin: auto;
font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
@ -253,19 +303,19 @@
padding: 7px; padding: 7px;
position: relative; position: relative;
transition: all .3s ease; transition: all .3s ease;
} }
.ejs_menu_button:hover { .ejs_menu_button:hover {
background: rgba(var(--ejs-primary-color),1); background: rgba(var(--ejs-primary-color),1);
color: #fff; color: #fff;
} }
.ejs_menu_button:hover .ejs_menu_text { .ejs_menu_button:hover .ejs_menu_text {
transform: translate(0,0) scale(1); transform: translate(0,0) scale(1);
opacity: 1; opacity: 1;
} }
.ejs_menu_text { .ejs_menu_text {
left: 0; left: 0;
background: rgba(255,255,255,0.9); background: rgba(255,255,255,0.9);
border-radius: 3px; border-radius: 3px;
@ -285,9 +335,9 @@
transition: transform .2s .1s ease,opacity .2s .1s ease; transition: transform .2s .1s ease,opacity .2s .1s ease;
white-space: nowrap; white-space: nowrap;
z-index: 2; z-index: 2;
} }
.ejs_menu_text::before { .ejs_menu_text::before {
border-left: 4px solid transparent; border-left: 4px solid transparent;
border-right: 4px solid transparent; border-right: 4px solid transparent;
border-top: 4px solid rgba(255,255,255,0.9); border-top: 4px solid rgba(255,255,255,0.9);
@ -299,6 +349,32 @@
transform: translateX(-50%); transform: translateX(-50%);
width: 0; width: 0;
z-index: 2; z-index: 2;
}
.ejs_menu_bar {
padding: 15px 10px 10px;
background: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.7));
border-bottom-left-radius: inherit;
border-bottom-right-radius: inherit;
bottom: 0;
color: #fff;
left: 0;
position: absolute;
right: 0;
transition: opacity .4s ease-in-out,transform .4s ease-in-out;
z-index: 3;
align-items: center;
display: flex;
justify-content: flex-start;
text-align: center;
}
}
.ejs_menu_bar svg {
display: block;
fill: currentColor;
height: 18px;
pointer-events: none;
width: 18px;
} }
.ejs_popup_container { .ejs_popup_container {
@ -579,7 +655,6 @@
font-size: 16px; font-size: 16px;
margin-bottom: 10px; margin-bottom: 10px;
position: absolute; position: absolute;
right: -3px;
text-align: left; text-align: left;
white-space: nowrap; white-space: nowrap;
z-index: 3; z-index: 3;
@ -590,7 +665,6 @@
content: ''; content: '';
height: 0; height: 0;
position: absolute; position: absolute;
right: 15px;
top: 100%; top: 100%;
width: 0; width: 0;
} }
@ -960,14 +1034,45 @@
border: 0; border: 0;
} }
.ejs_volume_parent { @media (max-width: 575px) {
padding-right: 15px; .ejs_volume_parent input[type='range'] {
width: 100%;
}
}
@media (min-width: 575px) {
.ejs_volume_parent {
max-width: 110px; max-width: 110px;
}
}
.ejs_volume_parent {
align-items: center; align-items: center;
display: flex; display: flex;
flex: 1; flex: 1;
position: relative; position: relative;
} }
/*
@media (max-width: 575px) {
.ejs_volume_parent {
padding-right: 0px;
}
.ejs_volume_parent input[type='range'] {
display: none;
}
}
@media (min-width: 575px) {
.ejs_volume_parent {
padding-right: 15px;
}
.ejs_volume_parent input[type='range'] {
display: block;
}
}*/
.ejs_volume_parent {
padding-right: 15px;
}
.ejs_volume_parent input[type='range'] {
display: block;
}
.ejs_volume_parent::-webkit-media-controls{ .ejs_volume_parent::-webkit-media-controls{
display: none; display: none;
} }
@ -976,12 +1081,12 @@
border:0; border:0;
border-radius:28px; border-radius:28px;
color:rgba(var(--ejs-primary-color), 1); color:rgba(var(--ejs-primary-color), 1);
display:block;
margin:0; margin:0;
padding:0; padding:0;
transition:box-shadow 0.3s ease; transition:box-shadow 0.3s ease;
width:100% width:100%
} }
.ejs_volume_parent input[type='range']::-webkit-slider-runnable-track{ .ejs_volume_parent input[type='range']::-webkit-slider-runnable-track{
background-color:rgba(255,255,255,0.25) background-color:rgba(255,255,255,0.25)
box-shadow:0 0 0 5px rgba(var(--ejs-primary-color), 0.5); box-shadow:0 0 0 5px rgba(var(--ejs-primary-color), 0.5);

File diff suppressed because one or more lines are too long