我正在asp.net开发新闻网站,我想创建新闻栏从右到左移动新闻,我用Marquee标签做了但问题是我希望它重复其内容而不用任何刺戳,因为它已经完成,然后从头开始,我希望它能够不断重复
任何帮助,请
先谢谢
答案 0 :(得分:4)
如果你必须有marquee功能,那么尝试使用jQuery插件,例如支持连续滚动的simplyScroll v1(即它无缝地环绕)。但是请注意,对于可用性和可访问性而言,对于旧<blink>
标记的方式而言,对于可用性和可访问性不熟悉 - 请参阅http://en.wikipedia.org/wiki/Marquee_element#Usability_problems
答案 1 :(得分:2)
我相信这会对你有所帮助:
<script type="text/javascript" language="javascript">
function objWidth(obj) {
if (obj.offsetWidth) return obj.offsetWidth;
if (obj.clip) return obj.clip.width;
return 0;
}
var mqr = [];
function mq(id) {
this.mqo = document.getElementById(id);
var wid = objWidth(this.mqo.getElementsByTagName('span')[0]) + 5;
var fulwid = objWidth(this.mqo);
var txt = this.mqo.getElementsByTagName('span')[0].innerHTML;
this.mqo.innerHTML = '';
var heit = this.mqo.style.height;
this.mqo.onmouseout = function () {
mqRotate(mqr);
};
this.mqo.onmouseover = function () {
clearTimeout(mqr[0].TO);
};
this.mqo.ary = [];
var maxw = Math.ceil(fulwid / wid) + 1;
for (var i = 0; i < maxw; i++) {
this.mqo.ary[i] = document.createElement('div');
this.mqo.ary[i].innerHTML = txt;
this.mqo.ary[i].style.position = 'absolute';
this.mqo.ary[i].style.left = (wid * i) + 'px';
this.mqo.ary[i].style.width = wid + 'px';
this.mqo.ary[i].style.height = heit;
this.mqo.appendChild(this.mqo.ary[i]);
}
mqr.push(this.mqo);
}
function mqRotate(mqr) {
if (!mqr) return;
for (var j = mqr.length - 1; j > -1; j--) {
maxa = mqr[j].ary.length;
for (var i = 0; i < maxa; i++) {
var x = mqr[j].ary[i].style;
x.left = (parseInt(x.left, 10) - 1) + 'px';
}
var y = mqr[j].ary[0].style;
if (parseInt(y.left, 10) + parseInt(y.width, 10) < 0) {
var z = mqr[j].ary.shift();
z.style.left = (parseInt(z.style.left) + parseInt(z.style.width) * maxa) + 'px';
mqr[j].ary.push(z);
}
}
mqr[0].TO = setTimeout('mqRotate(mqr)', 10);
}
</script>
<script type="text/javascript">
function start() {
new mq('m1');
mqRotate(mqr);
}
window.onload = start;
</script>
<div id="m1" class="marquee">
<span>Example for Continous Text</span>
</div>
答案 2 :(得分:0)
我认为此网站的实施符合您的要求http://www.givainc.com/labs/marquee_example.htm
答案 3 :(得分:0)
如果您想要新闻滚动条,可以尝试使用jQuery liScroll这个插件,我不知道您是否想在没有重新加载网页的情况下刷新新闻?
链接:http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html
答案 4 :(得分:0)
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
然后你可以给文字赋值。
protected void Page_Load(object sender, EventArgs e)
{
string str = "get data from database";
string text = "<MARQUEE>" + str + "</MARQUEE>";
Literal1.Text = text;
}
我认为这个网站很有用。 http://www.dynamicdrive.com/dynamicindex2/