MontefuckeR
Registered
Трябва ми нещо като marquee, но да няма това празно място като се превърти текста, а направо да си продължава...
Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
<html>
<head>
<title> Scroller </title>
<style type="text/css">
#scroller {
width: 100px;
height: 100px;
position: relative;
background: red;
border: solid 3px black;
overflow: hidden;
}
#s1, #s2 {
position: absolute;
}
</style>
<script type="text/javascript">
// #s1 и #s2 трябва да са по-високи от #scroller, за да работи
window.onload = function( e ){
var scroller = document.getElementById("scroller");
var s1 = document.getElementById("s1");
var s2 = document.getElementById("s2");
var f;
scrollerHeight = scroller.clientHeight;
s1Height = s1.offsetHeight;
s2Height = s2.offsetHeight;
(f = function(){
s1.style.top = '0px';
s2.style.top = scrollerHeight+'px';
_( s1, scrollerHeight-s1Height, function(){
_( s1, -s1Height );
_( s2, 0, function(){
s1.style.top = scrollerHeight+'px';
_( s2, scrollerHeight-s2Height, function(){
_( s2, -s2Height );
_( s1, 0, function(){
f();
});
});
});
});
})();
function _( elm, top, func ){
var st = (new Date).getTime();
var sv = parseFloat( elm.style.top );
var dv = (top - sv);
var duration = Math.abs( dv ) * 25;
var p;
var timer = setInterval( function(){
if( (p = ((new Date).getTime() - st)/duration ) < 1 ){
elm.style.top = sv + p*dv + 'px';
} else {
elm.style.top = top + 'px';
clearInterval( timer );
if( func ) func();
}
}, 7 );
}
};
</script>
</head>
<body>
<div id="scroller">
<div id="s1">
s1 <br />s1 <br />s1 <br />s1 <br />s1 <br />
s1 <br />s1 <br />s1 <br />s1 <br />s1 <br />
s1 <br />s1 <br />s1 <br />s1 <br />s1 <br />
s1 <br />s1 <br />s1 <br />s1 <br />s1 <br />
s1 <br />s1 <br />s1 <br />s1 <br />s1 <br />
s1 <br />s1 <br />s1 <br />s1 <br />s1 <br />
</div>
<div id="s2">
s2 <br />s2 <br />s2 <br />s2 <br />s2 <br />
s2 <br />s2 <br />s2 <br />s2 <br />s2 <br />
s2 <br />s2 <br />s2 <br />s2 <br />s2 <br />
s2 <br />s2 <br />s2 <br />s2 <br />s2 <br />
s2 <br />s2 <br />s2 <br />s2 <br />s2 <br />
s2 <br />s2 <br />s2 <br />s2 <br />s2 <br />
</div>
</div>
</body>
</html>
<script>
var ScrollSpeed=1;
function findPos(obj)
{
var curleft=0;
var curtop =0;
if(obj.offsetParent) {
curleft=obj.offsetLeft;
curtop =obj.offsetTop;
while(obj=obj.offsetParent) {
curleft+=obj.offsetLeft;
curtop +=obj.offsetTop;
}
}
return [curleft,curtop];
}
function Scroller()
{
var f1 = document.getElementById('scroller1');
var f2 = document.getElementById('scroller2');
var vm=findPos(document.getElementById('scrollerFin'))[1] - findPos(f1)[1], y1=0, y2=0;
if(!f1.style.top) {
f1.style.top = '0px';
f2.style.top = vm+'px';
f2.innerHTML = f1.innerHTML;
} else {
y1=parseInt(f1.style.top); y1 = y1<(0-vm) ? vm : y1-ScrollSpeed; f1.style.top = y1+'px';
y2=parseInt(f2.style.top); y2 = y2<(0-vm) ? vm : y2-ScrollSpeed; f2.style.top = y2+'px';
}
setTimeout('Scroller()', 30);
}
window.onload = function() { Scroller(); }
</script>
<div style="position:relative;background:silver;width:150px;height:100px;overflow:hidden;" onmouseover="ScrollSpeed=0;" onmouseout="ScrollSpeed=1;">
<div id="scroller1" style="position:absolute;">
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
<div id="scrollerFin"></div>
</div>
<div id="scroller2" style="position:absolute;"></div>
</div>