нажатие на картинки устанавливает фон для .outer div, кнопка устанавливает фон для тега изображения. Почему бы не установить кнопку для фона .outer div? Затем удалите тег изображения вообще. Я думаю, что тогда это будет работать так, как вы ожидаете, пример ниже.
В приведенном ниже примере ... Я изменил настройку background
на настройку backgound-image
, поэтому настройка не перекрывает другой фон css .
$('ul#images li').click(function(e){
$('ul#images li').each(function(){
$(this).removeClass('active');
});
$(this).addClass('active');
var source = $(this).children('img').attr('src');
$('.outer').css('background-image', 'url('+source+')');
});
$(function () {
$(":file").change(function () {
if (this.files && this.files[0]) {
var reader = new FileReader();
reader.onload = imageIsLoaded;
reader.readAsDataURL(this.files[0]);
}
});
});
function imageIsLoaded(e) {
//$('#myImg').attr('src', e.target.result);
$('.outer').css('background-image', 'url('+e.target.result+')');
}
*, *:before, *:after {
margin: 0; padding: 0;
box-sizing: border-box;
color: white;
font-family: 'Open Sans', sans-serif;
}
html, body {
height: 100%;
width: 100%;
}
ul, ol {
list-style-type: none;
}
a,
a:visited,
a:focus {
text-decoration: inherit;
font-weight: inherit;
color: inherit;
}
.outer {
background: black;
background: url('https://hdfondsdecran.com/image/201609/71/nuage-vue-de-dessus-multicolore-merveilleux.jpg');
background-position: center center;
@include transform(scale(1.1));
background-size: cover;
display: table;
height: 100%;
width: 100%;
position: relative;
z-index: 1;
}
.overlay {
background: rgba(black,0.6);
height: 100%; width: 100%;
position: absolute;
z-index: 2;
left:0;
top:0;
background-repeat: repeat;
}
h1 {
font-weight: 700;
font-size: 7em;
font-size: 8vw;
text-transform: uppercase;
position: relative;
}
h2 {
font-style: italic;
font-weight: 300;
font-size: 1.1em;
font-size: 1.5vw;
}
.inner {
position: relative;
z-index: 3;
display: table-cell;
vertical-align: middle;
text-align: center;
text-shadow: 0 0 20px rgba(black,0.6);
}
button {
background: transparent;
border: 2px solid white;
margin: 5px;
font-size: 0.8em;
font-size: 1.5vw;
padding: 10px 15px;
border-radius: 5px;
font-weight: 400;
cursor: pointer;
@include transition(all 0.4s ease);
}
button:hover {
background: white;
color: black;
}
ul#images li {
display: inline-block;
margin: 10px;
border: 2px solid white;
border-radius: 5px;
cursor: pointer;
opacity: 0.5;
}
ul#images li:hover {
opacity: 1;
}
ul#images li.active {
opacity: 1;
}
ul#images li img {
width: 100px;
height: 50px;
display: block;
border-radius: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="outer">
<div class="overlay">
</div>
<div class="inner">
<br><br><h2>Change Background Image:</h2><br>
<ul id="images">
<li class="active"><img src="https://img.gadgethacks.com/img/86/37/63601592852769/0/get-ios-10s-new-wallpaper-any-phone.1280x600.jpg" /></li>
<li><img src="https://www.itl.cat/pngfile/big/2-20588_ios-wallpaper-iphone-wallpaper-hd-desktop.jpg" /></li>
<li><img src="https://i.pinimg.com/originals/42/65/79/426579e96e9333ed9518c2fd9d3e5482.jpg" /></li>
<li><img src="https://i.pinimg.com/originals/a1/4d/e0/a14de021c4fa8049d2d798d5b98d7419.jpg" /></li>
<input type="file" id="uploader" />
<label for="uploader">Parcourir</label>
</ul>
</div>
</div>