如何用js实现一个横向滚动新闻?补充里已附图。求详细代码,不要太复杂的。最好使用div不要用table

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用js实现一个横向滚动新闻?补充里已附图。求详细代码,不要太复杂的。最好使用div不要用table相关的知识,希望对你有一定的参考价值。

简单的你可以使用<marquee></marquee>这个标签,把你的DIV保函进去
可以设置滚动方向速度,但是效果不太好,你要效果更好的无缝滚动的,百度搜索superslide2,第一个,这个插件有很多效果,用起来也很简单

参考技术A 最简单的
<marquee width="300">如何用js实现一个横向滚动新闻</marquee>

js版的
<style>
#demowidth:300px;margin:0 auto; overflow:hidden
#indemowidth:300%
#demo1width:300px; float:left
#demo2width:300px; float:left
</style>
<div id="demo">
  <div id="indemo">
    <div id="demo1">如何用js实现一个横向滚动新闻</div>
    <div id="demo2"></div>
  </div>
</div>
<script>
var speed=10;//数字越大越慢
var demo=document.getElementById("demo")
var demo1=document.getElementById("demo1")
var demo2=document.getElementById("demo2")
     demo2.innerHTML=demo1.innerHTML;
function marquee()
if(demo.scrollLeft>=demo1.offsetWidth)
demo.scrollLeft=0
else
demo.scrollLeft++


setInterval(marquee,speed)
</script>

追问

我在demo1中放了多个div ,这些div的样式写的css都不起作用。这个怎么弄?
还有demo1 demo2 稍微用1600px然后就变成两行滚动了~

追答

css不起作用? 检查下看你写错了没
demo1的宽度要大于或等于demo的宽度它才会滚动,例如,你的demo的宽度设为980px;demo1的宽度必须大于或等于980px

追问

嗯。检查过了,css不起作用。还有就是demo1的宽度太大的话滚动就会变成两行~

追答

没给高度当然会变两行了,给demo个高度啊,我只是给个例子,你该加的还是要加的,该改的还是要改的

追问

该加该改的都弄了 0.0 可是还是不行,可能我哪里搞错了。你留个Q我找时间加你详聊、

追答

QQ457375608

本回答被提问者采纳
参考技术B 很简单的,但是如果要传值到服务端加1,就要考虑第一次加载、取出按钮id的控件
在该事件里面取出文本框控件id的值,一直不断加1是可以实现的,其实还有很多方法1,还是点击提交的问题,添加onclick事件2,上面的思路是完全在前台做,加1就可以了。

案例如何用jquery实现仿百度新闻焦点图


像这样滚动的新闻焦点图如何实现?


【案例】如何用jquery实现仿百度新闻焦点图


代码如下


<!doctype html>

<html>

<head>

<script ></script>

<style>

body,dl,dd{margin:0;}

.container{width:480px;height:300px;overflow:hidden;position:relative;}

.container img{float:left;}

.container dl{background-image:none;position:absolute;bottom:0;left:0;width:98%;height:30px;line-height:30px;color:white;padding-left:2%}

.arrow_left,.arrow_right{display:block;width:41px;height:41px;position:absolute;top:50%;margin-top:-20px;cursor:pointer;}

.arrow_left{background-image:none;left:0;}

.arrow_right{background-image:none;right:0;}

</style>

<meta charset="utf-8">

<title>仿百度新闻焦点图</title>

</head>

<body>

<div class="container">

<img >

    <img >

    <img >

    <img >

    <img >

    <img >

    <dl>

     <dd>新闻文本显示区-第1条新闻</dd>

        <dd>新闻文本显示区-第2条新闻</dd>

        <dd>新闻文本显示区-第3条新闻</dd>

        <dd>新闻文本显示区-第4条新闻</dd>

        <dd>新闻文本显示区-第5条新闻</dd>

        <dd>新闻文本显示区-第6条新闻</dd>

    </dl>

    <span class="arrow_left" onselectstart="return false"></span>

    <span class="arrow_right" onselectstart="return false"></span>

</div>

<script>

/*初始*/

$(".container img,.container dd").hide();

$(".container img:eq(0),.container dd:eq(0)").show();

/*定时器函数*/

var n = 0;

function changeImg(){

if(n<$(".container img").length-1){

n=n+1;

}else{

n=0;

}

$(".container img,.container dd").hide();

$(".container img:eq("+n+"),.container dd:eq("+n+")").show();

}

var timer = setInterval(changeImg,2000);

$(".container").hover(function(){

clearInterval(timer);

},function(){

timer = setInterval(changeImg,2000);

})

/*箭头控制*/

$(".arrow_left").click(function(){

if(n>0){n=n-1}else{n=$(".container img").length-1}

$(".container img,.container dd").hide();

$(".container img:eq("+n+"),.container dd:eq("+n+")").show();

})

$(".arrow_right").click(function(){

if(n<$(".container img").length-1){n=n+1;}else{n=0}

$(".container img,.container dd").hide();

$(".container img:eq("+n+"),.container dd:eq("+n+")").show();

})

</script>

</body>

</html>



希望大家看过我的案例分享后能有所收获。如果大家喜欢哪类效果,还想看哪方面的哪类型的设计制作案例可以留言给我,有时间我一定会分享更多设计制作相关的内容给大家的。谢谢!


 时刻提醒自己 

不抱怨,多实践,终达成功彼岸!

我的座右铭:不能领跑也绝不放弃!


【案例】如何用jquery实现仿百度新闻焦点图

以上是关于如何用js实现一个横向滚动新闻?补充里已附图。求详细代码,不要太复杂的。最好使用div不要用table的主要内容,如果未能解决你的问题,请参考以下文章

纯js自定义横向滚动条-补充说明

『牛角书』鸿蒙实现简单的每日新闻

案例如何用jquery实现仿百度新闻焦点图

Vue中如何用鼠标滑轮进行横向滑动不显示滚动条

Vue中如何用鼠标滑轮进行横向滑动不显示滚动条

如何用js监听滚动条滚动事件?