My current struggle involves using iScroll in my web project. The goal is to populate a list with articles and slide in a div over the list to display the selected article. While the basic functionality is in place, I face an issue where scrolling through the article also scrolls the list of articles. You can observe this behavior here (the website is in Russian; click on an article and scroll to the end). Below is the code snippet:
<head>
<style>
body{
padding: 0;
margin: 0;
border: 0;
}
#header{
position:fixed;
top:0;
left:0;
height:100px;
width: 100%;
background-color: black;
}
header{
position: absolute;
z-index: 2;
top: 0; left: 0;
width: 100%;
height: 50px;
}
#wrapper{
position: absolute;
z-index: 1;
width: 100%;
top: 52px;
left: 0;
overflow: auto;
}
#container{
position:fixed;
top:0;
right:-100%;
width:100%;
height:100%;
z-index: 10;
background-color: red;
overflow: auto;
}
#content{
margin:100px 10px 0px 10px;
}
</style>
</head>
<body>
<header>Main News</header>
<div id="wrapper">
<ul id="daily"></ul>
<ul id="exclusive"></ul>
<ul id="must"></ul>
<ul id="main"></ul>
<ul id="ukr"></ul>
<ul id="nba"></ul>
<ul id="euro"></ul>
</div>
<div id="container">
<div id="wrapper2">
<div id="header">
<button onclick="hide();">Back</button>
</div>
<div id="content"></div>
</div>
</div>
<script src="js/zepto.js"></script>
<script>
//AJAX requests to fill the li's...
function sayhi(url){
$('#container').animate({
right:'0',
}, 200, 'linear');
$.ajax({
url: serviceURL + "getnewstext.php",
data: {link: url},
success: function(content){
$('#content').append(content);
}
});
}
function hide(){
$('#container').animate({
right:'-100%'
}, 200, 'linear');
$('#content').empty();
}
</script>
<script src="js/iscroll-lite.js"></script>
<script>
var myScroll;
function scroll () {
myScroll = new iScroll('wrapper2', {hScroll: false, vScrollbar: false, bounce: false});
myScroll2 = new iScroll('wrapper', {hScroll: false, vScrollbar: false});
}
document.addEventListener('DOMContentLoaded', scroll, false);
</script>
</body>
I'm seeking a solution to enable scrolling within the div container, content, or wrapper2 without affecting the scrolling behavior of the wrapper containing the list of articles. It seems that my implementation of iScroll may be incorrect, as I encounter the same issue on both Android and iPhone devices.
UPDATE 1:
Changing the wrapper's position to fixed did manage to isolate scrolling to the div container, but now the list of articles does not scroll. I attempted to add another iScroll for the wrapper, but this approach did not yield the desired outcome. Any suggestions in this regard?
UPDATE 2:
Considering abandoning iScroll in favor of CSS alternatives, I made adjustments to my onclick events:
$('body').css('overflow', 'hidden');
On clicking the close button, the overflow setting reverts to auto. While this effectively prevents scrolling in a browser, the same solution does not apply to mobile devices. How can I achieve consistent behavior across both platforms?